焦点变化的方法

时间:2015-08-05 07:39:22

标签: c# .net winforms

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

我的目标是让程序在用户更改焦点时自动从数据库到输入字段获取最接近的数据/按下相应字段时输入或选项卡。当用户通过鼠标选择项目时,我仍然在寻找一种方法。

我知道这可以通过鼠标点击实现,但我拒绝相信没有一般的焦点更改方法。

2 个答案:

答案 0 :(得分:1)

这样的事情:

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

迭代所有控件并添加一个输入事件。将此处理程序绑定到您的方法。

修改
万一你想知道为什么“输入”而不是“LostFocus”或类似的东西:据我所知,并非每个控件都有焦点事件。正如我所见,到目前为止,所有人都提出了“回车”。也许有例外。应该检查出来......

答案 1 :(得分:0)

您可以为此目的使用Control.Enter事件和Control.Leave事件。 请参阅MSDN Control.EnterControl.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
}