【问题标题】:C# mouse click event after focus in windows 2012Windows 2012 中焦点后的 C# 鼠标单击事件
【发布时间】:2013-09-03 05:20:47
【问题描述】:

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

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

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

谁能提出解决方案或替代方案?表单出现后需要在文本框中获取光标

【问题讨论】:

    标签: c# windows winforms focus mouseclick-event


    【解决方案1】:

    您应该改用Shown 事件:

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

    注意:您使用了Paint 事件,这将非常讨厌,每次重新绘制表单时,您的textBox1 将被聚焦,每次您的表单调整大小时都会触发Paint 事件,状态变化,......我们无法准确确定它触发的时间,但是当您的表单运行时它会相当频繁地触发。这就是为什么您无法单击并选择表单上的任何内容的原因。这是因为单击或选择控件会触发 Paint 事件并使您的 textBox1 聚焦。

    【讨论】:

    • 这有点奇怪,因为原始应用程序在 2008 年在 windows 环境中运行并且按预期工作。是的,Shown event 实际上更好。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-04-11
    • 2018-06-29
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    相关资源
    最近更新 更多