【问题标题】:TextBox Leave Event suppresses Button Click文本框离开事件抑制按钮单击
【发布时间】:2013-03-19 17:27:59
【问题描述】:

我有一个简单的 Windows 窗体:'Message' TextBox 具有 Enter 和 Leave 事件,允许用户仅在该字段上输入另一种语言的文本。 “发送”按钮发送表单内容。用户填写 Message 并单击 Send 后,Textbox 的 Leave 事件会阻止按钮的 Click 事件触发。我需要两个处理程序都运行。

以下是相关代码:

private void Message_Enter(object sender, EventArgs e)
{
    inputLang = InputLanguage.CurrentInputLanguage;
    foreach (InputLanguage lang in InputLanguage.InstalledInputLanguages)
    {
        if (lang.LayoutName == "United States-International")
        {
            InputLanguage.CurrentInputLanguage = lang;
            break;
        }
    }
}

private void Message_Leave(object sender, EventArgs e)
{
    InputLanguage.CurrentInputLanguage = inputLang;
}

private void Send_Click(object sender, EventArgs e)
{
    string dest = ServerList.Text;
    string msg = Message.Text;
    if (dest.Length == 0 || msg.Length == 0 )
    {
        Log("Fill the destination server and the message");
        return;
    }
    if (context.SendMessage(dest, msg))
    {
        if (!ServerList.Items.Contains(dest))
        {
            ServerList.Items.Add(dest);
        }
    }
    else
    {
        if (ServerList.Items.Contains(dest))
        {
            ServerList.Items.Remove(dest);
        }
    }
}

【问题讨论】:

    标签: windows forms events button textbox


    【解决方案1】:

    问题现在解决了。该问题是由输入语言的变化引起的。如果进入和离开处理程序做了其他事情,那么点击事件将正常触发。由于我需要更改输入语言,因此我通过监视 MouseDown、MouseClick 和 MouseUp 事件并在未自动生成时生成单击来解决它。

    【讨论】:

      【解决方案2】:

      我也有同样的问题。当我更改输入语言然后在离开事件时将其设置回默认语言。当我单击其他组件时,它不会触发单击事件。我不得不点击两次。 我认为这与专注有关。 在更改输入语言后,我通过将焦点设置回表单来解决它。 这是处理程序:

      void textBoxSearch_LostFocus(object sender, EventArgs e)
          {
              InputLanguage.CurrentInputLanguage = InputLanguage.DefaultInputLanguage;
              this.Focus();
          }
      

      希望对你有帮助...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多