c# - 如何在windows窗体中获取用户输入的文本框的名称c#
问题描述
我有超过 160 个文本框,每个文本框对应于芯片中寄存器内的值。每次从该特定文本框中按下输入时,我想将输入到文本框中的值写入相应的寄存器。由于有很多文本框 keydown 事件是不可能的每个文本框。我应该在这里做什么?如何获取用户键入数据然后按回车键的文本框的名称,以便我可以从该特定框中获取值并复制它。
解决方案
当然,您可以在表单构造函数中挂钩 keypress 事件。
public Form1()
{
InitializeComponent();
foreach (Control control in this.Controls)
if (control is TextBox)
((TextBox)control).KeyPress += new KeyPressEventHandler(TextBox_Keypress);
}
private void TextBox_Keypress(object sender, KeyPressEventArgs e)
{
var textbox = sender as TextBox;
MessageBox.Show(textbox.Name + "has typed a key");
}
深入挖掘儿童
如果您需要在儿童中获取文本框,PsychoCoders 的回答可以为您提供帮助。
public IEnumerable<Control> GetAll(Control control, Type type)
{
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => GetAll(ctrl, type))
.Concat(controls)
.Where(c => c.GetType() == type);
}
并改变你的foreach
喜欢;
foreach (Control control in GetAll(this, typeof(TextBox)))
{
...
}
推荐阅读
- react-native - android studio错误-无法确定任务':app:installDebug'的依赖关系
- jquery - 在特定索引处插入新元素 - 同位素 Jquery
- python - 将一个节点链替换为graphdb中的另一个节点链?像字符串替换
- javascript - 使用 history.goBack() 时,如何确保只返回应用内的页面?
- python - 对象“函数”没有属性“文件”
- r - 如何将文件保存到包含“&”等特殊字符的路径中?('&'与英文键盘输入的'&'不同)
- javascript - 错误:请求失败,状态码 403
- python - Pandas - 选择月份和年份
- java - 直接调用@Bean注解的方法
- node.js - 为 Node.js 应用程序安装 MongoDB 依赖项时出错