我正在使用WPF和C#开发应用程序。在一个窗口中,我有多个textBox,排列在一个5列和一行的网格中,用户需要的数量。它的工作原理如下:最初5个textBoxes的第一行是可见的,用户输入适当的值,一旦他在行的第5个textBox中点击ENTER
,就会为新条目生成一个新的类似的textBoxes行。这种情况继续发生。每个textBox都有一个使用RegisterName
方法和循环的唯一名称。
现在我的问题是假设我已经创建了5行,窗口上有大约25个textBoxes。我专注于第三行的一个textBox,并键入一些适当的KeyDown事件。在这个keydown事件中,我需要导致此事件的所有textBox的 Name 。我怎么能这样做?
这个,完成后,还将帮助我访问该行的所有其他文本框,因为我知道命名它们的命名法。请帮忙。
答案 0 :(得分:1)
嗨,请将此事件用于TextBox
TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
并获取文本框的ID,使用sender参数与标记组合。
i.e. TextBox textbox = (TextBox)sender;
答案 1 :(得分:1)
您可以尝试以下内容:
注意我们还设置了Name
属性以及FrameworkContentElement.RegisterName函数。
var box = new TextBox();
var itemName = "Unique Identifier"; // Change this to your unique name per box
this.RegisterName(itemName, box);
box.Name = itemName;
box.KeyDown += (sender, args) => {
var textBox = sender as TextBox;
if (textBox != null)
MessageBox.Show(textBox.Name); // Would show "Unique Identifier"
};