焦点变化的方法

本文关键字:方法 变化 焦点 | 更新日期: 2023-09-27 18:06:37

是否有一个方法可以启动焦点更改并且可以被覆盖?

我的目标是为程序获取最接近的数据自动从数据库输入字段,每当用户改变他的焦点/按下回车或tab时,在相应的字段。我还在寻找一种方法来做到这一点,当用户通过鼠标选择一个项目。

我知道这可以在鼠标点击上实现,但我拒绝相信没有一个通用的方法来改变焦点。

焦点变化的方法

foreach(Control ctrl in this.Controls)
{
   ctrl.Enter += new EventHandler(Focus_Changed); // Your method to fire
}

遍历所有控件并添加一个enter-event。将此处理程序绑定到您的方法。

编辑:


以防您想知道为什么是"Enter"而不是"LostFocus"或类似的东西:据我所知,不是每个控件都有焦点事件。正如我目前所看到的,"Enter"是为所有人呈现的。也许也有例外。

您可以使用Control.Enter事件和Control.Leave事件来实现此目的。请参阅MSDN控制。输入和Control.Leave .

textBox1.Enter += textBox1_Enter;
textBox1.Leave += textBox1_Leave;
private void textBox1_Enter(object sender, System.EventArgs e)
{
    // the control got focus
}
private void textBox1_Leave(object sender, System.EventArgs e)
{
    // the control lost focus
}