TextBox的LostFocus事件问题

Shm*_*hen 0 c# events textbox winforms

嘿,我正在尝试使用此功能:

private void IDCustTextBox_LostFocus(object sender, System.EventArgs e)
{
      if (CustName.Text == "abc")
          MessageBox.Show("Error");
}
Run Code Online (Sandbox Code Playgroud)

Ram*_*ngh 10

属性窗口中的文本框没有LostFocus事件,如果要使用它,则必须添加事件处理程序,属性窗口中有文本框离开事件,可以使用如下:

private void textBox1_Leave(object sender, EventArgs e)
    {
     // do your stuff
    }
Run Code Online (Sandbox Code Playgroud)

要添加事件处理程序,您需要编写以下内容:

textBox1.LostFocus += new EventHandler(textBox1_LostFocus);
Run Code Online (Sandbox Code Playgroud)

然后你可以使用它如下:

private void textBox1_LostFocus(object sender, EventArgs e)
    {
     // do your stuff
    }
Run Code Online (Sandbox Code Playgroud)

  • 这是不正确的,只是[属性窗口中未显示](http://msdn.microsoft.com/zh-cn/library/system.componentmodel.browsableattribute.aspx) (2认同)
  • 您不以任何方式生成自定义事件,只是为现有事件添加处理程序 (2认同)

V4V*_*tta 5

您需要让该字段知道该事件有一个处理程序 LostFocus

由于这不是属性窗口的一部分,因此您将附加处理程序

CustTextBox.LostFocus += new EventHandler(IDCustTextBox_LostFocus);
Run Code Online (Sandbox Code Playgroud)

  • 如果属性窗口中有事件,则自动完成此部分(您可以在表单的designer.cs文件中看到),而在这种情况下,您将不得不执行该部分.这实际上有助于知道"LostFocus"将由此方法处理 (2认同)