【问题标题】:textbox_leave event fires twice when click on combobox单击组合框时,文本框离开事件会触发两次
【发布时间】:2010-12-01 06:22:54
【问题描述】:

嗨 我使用 textBox_leave 方法来验证文本框,如果鼠标单击任何控件,我想显示一个消息框。我的代码如下所示。

private void txtbox_Leave(object sender, EventArgs e)
  {

 if(textbox.Text != "this")
  {
 messagebox.show("Not valid");
 textbox.focus();

  }

}

问题是当我单击表单中的组合框时,消息框会弹出两次。如果我单击任何其他控件,它工作正常。 我该如何解决这个问题?

提前谢谢..

【问题讨论】:

    标签: c# mouseevent


    【解决方案1】:

    使用ComboBox.SelectedIndexChanged or ComboBox.SelectedValueChanged 来验证用户从组合框中选择的值会更合适。

    【讨论】:

    • 我想验证文本框的值。当我们点击组合框或其他控件时,如果文本框中没有有效的文本,则必须显示消息框。不仅是组合框。对于其他控件,它可以工作美好的。问题在于访问组合框时。
    • 也许你可以检查文本框是否在 private void comboBox1_Enter(object sender, EventArgs e) { txtbox_Leave(sender, e); } 在组合框的情况下
    【解决方案2】:

    我无法复制。也许试试这个:

    string message = (sender is Control) ? ((Control)sender).Name : "";
    message += " " + sender.ToString();
    MessageBox.Show(message);
    

    查看触发事件的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      相关资源
      最近更新 更多