在Event Keydown中获取发件人文本框名称

时间:2013-04-21 05:29:21

标签: wpf c#-4.0 textbox onkeydown

我正在使用WPF和C#开发应用程序。在一个窗口中,我有多个textBox,排列在一个5列和一行的网格中,用户需要的数量。它的工作原理如下:最初5个textBoxes的第一行是可见的,用户输入适当的值,一旦他在行的第5个textBox中点击ENTER,就会为新条目生成一个新的类似的textBoxes行。这种情况继续发生。每个textBox都有一个使用RegisterName方法和循环的唯一名称。

现在我的问题是假设我已经创建了5行,窗口上有大约25个textBoxes。我专注于第三行的一个textBox,并键入一些适当的KeyDown事件。在这个keydown事件中,我需要导致此事件的所有textBox的 Name 。我怎么能这样做?

这个,完成后,还将帮助我访问该行的所有其他文本框,因为我知道命名它们的命名法。请帮忙。

2 个答案:

答案 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"
};