而不是在我的应用程序中附加PreviewKeyUp
事件与每个TextBox
事件,并检查按下的键是否为回车键,然后执行操作,我决定实现TextBox
的扩展版本,该版本包含在TextBox
中按Enter键时触发的DefaultAction事件。WPF:按下回车键时触发事件的文本框
我所做的是基本上创建一个新的类,从TextBox
延伸与公共事件DefaultAction
,像这样的:
public class DefaultTextBoxControl:TextBox
{
public event EventHandler<EventArgs> DefaultAction = delegate { };
public DefaultTextBoxControl()
{
PreviewKeyUp += DefaultTextBoxControl_PreviewKeyUp;
}
void DefaultTextBoxControl_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key != Key.Enter)
{
return;
}
DefaultAction(this, EventArgs.Empty);
}
}
然后我用这个自定义文本框,从我的应用程序像这样(XAML):
<Controls:DefaultTextBoxControl DefaultAction="DefaultTextBoxControl_DefaultAction">
</Controls:DefaultTextBoxControl>
现在在我的一点经验我已经在学习WPF,我发现几乎大部分时间有一个“冷”(希望更容易)WA y执行的东西
...所以我的问题是,如何改善上述控制?或者也许有另一种方法可以做到上述控制? ...也许只使用声明性代码而不是声明式(xaml)和过程式(C#)?
但有了这个,你如何分配时,按下Enter键时会发生什么?因为每个TextBox都有不同的作用 – 2009-05-03 10:43:57
哦!我会更新答案。 – 2009-05-03 11:41:53
最佳答案! – 2014-02-20 11:51:27