wpf 自定义输入ip地址的文本框 - 详解

news/2025/9/24 19:19:17/文章来源:https://www.cnblogs.com/yxysuanfa/p/19109825

xmal

PS:因为是上位机,所以文本框里面写了键盘,如果不需要可删除。

cs

using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
namespace 项目
{
///
/// IPTextBox.xaml 的交互逻辑
///
public partial class IPTextBox : UserControl
{
public IPTextBox()
{
InitializeComponent();
}
///
/// 按下按键键前,判断哪些能输入
/// 只能输入数字 删除键 回车键 返回键 Tab键 左右方向键
/// 删除键、左右方向键 控制光标位置
///
private void TbxIP1_PreviewKeyDown(object sender, KeyEventArgs e)
{
Key key = e.Key;
if (sender is not TextBox tbx || tbx == null) { return; }
if ((key >= Key.D0 && key = Key.NumPad0 && key
/// 释放按键前,判断光标要做什么操作
///
private void TbxIP1_PreviewKeyUp(object sender, KeyEventArgs e)
{
Key key = e.Key;
if (sender is not TextBox tbx || tbx == null) { return; }
if ((key >= Key.D0 && key = Key.NumPad0 && key  255)
{
tbx.Text = "255";
return;
}
SetTbxFocus(tbx, true, true);
}
}
else if (key == Key.Delete)
{
// 无操作
}
else if (key == Key.Enter)
{
// 暂时不做操作
}
else if (key == Key.Back)
{
}
else if (key == Key.Tab)
{
// 暂时不做操作
}
else if (key == Key.Left)
{
}
else if (key == Key.Right)
{
}
else
{
// 不是上述按键,就不处理
e.Handled = true;
}
}
///
/// 设置当前输入框的前面或后面的输入框获取焦点,以及是否全选内容
///
/// 当前输入框
/// 是否是后面的输入框(false为前面的输入框)
/// 是否全选内容
private void SetTbxFocus(TextBox curretTbx, bool isBack, bool isSelectAll)
{
// 所有的ip输入框
var TbxIPList = new List();
foreach (UIElement item in GridIPAddress.Children)
{
if (item.GetType() != typeof(TextBox))
{
continue;
}
if (item is not TextBox tbx || tbx == null)
{
continue;
}
TbxIPList.Add(tbx);
}
// 要聚焦的输入框
TextBox? nextTbx = null;
// 往后
if (isBack)
{
// 当前输入框是前三个,那么就取后一个输入框
int index = TbxIPList.IndexOf(curretTbx);
if (index = 1)
{
nextTbx = TbxIPList[index - 1];
}
}
// 设置焦点 全选内容
if (nextTbx != null)
{
nextTbx.Focus();
if (isSelectAll)
{
nextTbx.SelectAll();
}
}
}
}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916127.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设图文做营销网站视频

【JavaEE】Spring Boot 开发要点总结(3) 文章目录 【JavaEE】Spring Boot 开发要点总结(3)1. 日志有什么作用2. 日志格式2.1 日志框架原理 3. 日志的打印3.1 System.out.println3.2 使用日志框架3.3 日志级别3.3.1 设置默认日志显…

模板式自助建站wordpress ping服务器

git误操作带来的麻烦-merge 我想将一个分支的内容完全覆盖远程另外一个分支的内容怎么做 如果你想将一个本地分支(我们称之为source-branch)的内容完全覆盖远程的另一个分支(我们称之为target-branch),可以按照以下步…

徐州做网站最好的公司网站在线制作软件

前言:希望通过本文,使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱,避免在该版本上继续踩坑。同时通过对源码的分享,升级MySQL5.7.18时分区表性能下降的根本原因,向MySQL源码爱好者展示分区表实现中锁的运用。问题描…

【macOS】垃圾箱中文档无法清理的“含特殊字符文件名”的技巧

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

公司网站简介开发定制软件系统

文章目录 象棋王子电子木鱼BabyGo 象棋王子 考点:前端js代码审计 直接查看js源码,搜一下alert 丢到控制台即可 电子木鱼 考点:整数溢出 main.rs我们分段分析 首先这段代码是一个基于Rust的web应用程序中的路由处理函数。它使用了Rust的异步…

Git 工作树 (worktree)、合并 (merge) 流程、拉取请求 (PR) 机制,以及基线分支概念

提升效率:掌握 Git 工作流中的高阶技巧与基线管理在团队协作和复杂项目开发中,高效使用 Git 远不止 commit 和 push 这么简单。掌握 git worktree、规范的合并流程和 PR 机制,是提升开发效率的关键。本文将为您梳理…

【HD300I 】基于昇腾 310P 的全国产化智能计算模组

产品概述 HD300I 是一款基于昇腾 310P 的全国产化智能计算模组。该模 组将昇腾 310P 芯片集成在了一个 140*80mm 的板卡上,可以作为一 个紧凑的核心模块,进行功能的扩展,能够快速搭建起一个 AI 边缘智 能计算推理的…

mvc做的网站如何发布访问新建网站的评估

2019独角兽企业重金招聘Python工程师标准>>> 俗话说的好啊,“工于利启事,必先善其器”,如果说你的编程功底是一个枪法的话,那么强大的eclipse就是android战士们最好的武器。 这里,我们来总结eclipse的使用技…

新手做网站详细步骤公司装修免费设计

大家好我是苏麟 , 今天聊聊怎么继续使用Java8做项目 . 在做项目的时候突然发现Java8没了 , 我心想 : " 嗯? IDEA出毛病了?" ,经过我仔细检查原来是spring官方不支持Java8了 . IDEA 内置的 Spring Initializr 创建 Spring Boot 新项目时,没有 Java 8 的选…

《密码系统设计》第三周

20231313 张景云《密码系统设计》第三周预习AI对内容的总结 《嗨翻C语言》第四章内容总结 一、多源文件开发核心思想:分而治之 大型程序无需局限于单个源文件,将源代码拆解为小模块(多个源文件),可大幅降低维护难…

详细介绍:Cloudflare 推出 GenAI 安全工具,守护企业数据

详细介绍:Cloudflare 推出 GenAI 安全工具,守护企业数据pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

惠州市+网站开发公司福州做网站建设

如何测试光纤网速?如何测试网速多少兆网速测试的选择有很多,你在安装宽带的时候,网络提供商可能给你介绍到什么网站或者下载什么软件进行网速测试。而不管你使用什么来测试网速,你都不应该只使用一个方法,正确的做法是使用多个方…

宁波网站建设在哪里the7企业中 英文wordpress模板

Moved to http://blog.tangcs.com/2008/06/15/pinvoke-and-marshaling-data-1/转载于:https://www.cnblogs.com/WarrenTang/archive/2008/06/15/1222750.html

论小学教师转移矛盾的方法——以“小组连坐制”为例

前言 本文旨在探讨小学教师转移自己与学生之间矛盾的方法。经过一段时间的教学以后,学生与教师难免产生一些矛盾,而防止冲突的最简单方法就是将矛盾转移出去——毕竟大部分小学生还没有经过系统性的思辨训练,很容易…

编译器与链接器--通俗解释

整理、查找、关联判断力是一个人最重要的能力

VS2022 不支持 .NET Framework 4.0 的解决方法

Visual Studio 2022 默认不再支持 .NET Framework 4.0,这可能导致旧项目无法正常加载或编译。以下是解决此问题的几种方法。示例问题当尝试打开基于 .NET Framework 4.0 的项目时,可能会出现以下错误提示:找不到 .N…

【Origin】数据分析后的图,提取到外部图表

1、想要提取的图2、左边窗口还原,再双击打开该均值图,使其浮动3、在浮窗上右键,点击创建副本即可,左边出现绘图副本 Love for Ever Day

怎么做钓鱼网站万网个人网站

题目描述 小明家住在一条胡同里。胡同里的门牌号都是连续的正整数,由于历史原因,最小的号码并不是从1开始排的。 有一天小明突然发现了有趣的事情: 如果除去小明家不算,胡同里的其它门牌号加起来,刚好是100&#xff01…

做网站关键词加到什么位置园区智慧管理平台

夏天天气炎热,电脑机箱内温度也较高,温度过高会影响电脑性能出现死机等问题,甚至影响硬件寿命。所以给机箱装风扇来散热是非常重要的。那么,机箱风扇怎么装合理呢?机箱风扇的电源线怎么接呢?下面分享一下机箱风...夏天天气炎热&…

做网站图片为什么不清晰个人网页在线制作

作为程序员,持续进步和发展是至关重要的。除了技术能力的提升,还有一些关键的行为和思维方式可以帮助工程师在职业生涯中取得更大的成功。本文将提供六个重要的建议,这些建议将帮助程序员在职业生涯中迈出成功的步伐。 走出舒适区 走出舒适区…