在Windows 2012中聚焦后的C#鼠标单击事件

时间:2013-09-03 05:20:48

标签: c# windows winforms focus mouseclick-event

我在Windows 2012中发现了一个奇怪的错误。我有一个简单的窗口(WinForm),带有一个文本框和一个按钮(textBox1和button1)。我尝试在表单出现后专注于textbox1。

private void Find_Paint(object sender, PaintEventArgs e)
{
   textBox1.Focus();           
}

如果我将其设置为Click并且MouseClick事件停止工作。所以我不能点击按钮。 在Windows 2008中它的工作。如果评论焦点线 - 也可以。

谁可以提出解决方案或者替代方案?表单出现后需要将光标放在文本框中

1 个答案:

答案 0 :(得分:1)

您应该使用Shown事件:

private void Find_Shown(object sender, EventArgs e){
  textBox1.Focus();
}

注意:您使用了Paint这个非常讨厌的事件,每次重新绘制表单时,textBox1都会被关注,Paint事件是每次表单调整大小时都会触发,状态更改,...我们无法准确确定它发出的时间,但是当表单运行时它会频繁触发。这就是为什么你不能点击并选择表单上的任何内容的原因。这是因为点击或选择控件会触发Paint事件,然后让您textBox1成为焦点。