返回控件的名称

时间:2014-04-15 13:41:22

标签: c# wpf

我的WPF / C#应用程序中有一个简单的XAML表单,其中包含多个文本框。当按下TAB或ENTER键时我需要知道控件的名称 - 但我不知道该怎么做。

我有一个侦听Enter / Tab键的函数,但在那之后 - 我很难过:

public viewSearch()
{
    InitializeComponent();
    PreviewKeyDown += new KeyEventHandler(HandleEsc);
}

private void HandleEsc(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape) Close();
    if (e.Key == Key.Enter) SearchAndDisplay();
    if (e.Key == Key.Tab) SearchAndDisplay();
}   

private void SearchAndDisplay()
{
    MessageBox.Show("THE NAME OF THE CONTROL");
} 

谢谢。

1 个答案:

答案 0 :(得分:3)

如果您正在寻找触发事件的控件,您可以尝试以下操作: (伪代码,因为我目前无权访问Visual Studio,我无法直接检查这是否对WPF都有效):

private void HandleEsc(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Escape) Close();
    if (e.Key == Key.Enter ||
        e.Key == Key.Tab) SearchAndDisplay(e.OriginalSource)
}   

private void SearchAndDisplay(object sender)
{
    if(sender is Control)
    {
        MessageBox.Show(((Control)sender).Name);
    }
}