我想为GotFocus和LostFocus上的所有textBox调用泛型处理函数。
对于GotFocus,我可以创建:
private void GotFocus()
{
TextBox textBox = ((TextBox)FocusManager.GetFocusedElement());
textBox.Text = "";
}
并将其称为:
private void textBox1_GotFocus(object sender, RoutedEventArgs e)
{
//Instead of this in every TextBox
//TextBox textBox = (TextBox)sender;
//textBox.Text = "";
GotFocus();
}
但对于LostFocus,我不能做同样的方法来获得一些symetry处理程序?我是否有义务在私人会员中管理GotFocus中的控件记忆,以便以后能够在LostFocus中使用它?
通过挂钩.NET系统并创建这个缺少的GetPreviousFocusedElement函数,有没有办法更全面地做到这一点?
我喜欢Symetry法则,这就是医生发现新法律的方式,我认为这个原则也适用于IT。
答案 0 :(得分:1)
参数object sender
包含对控件的引用。
private void textBox1_GotFocus(object sender, RoutedEventArgs e)
{
(sender as TextBox).Text = "";
}
private void textBox1_LostFocus(object sender, RoutedEventArgs e)
{
(sender as TextBox).Text = "";
}
或任何你想要的LostFocus方法。