Toolstripbutton不验证文本框

时间:2010-11-23 16:32:45

标签: c# .net vb.net visual-studio-2008

我有一个文本框,一个标准按钮和一个包含几个按钮的工具条。 在文本框的验证事件中,我编码以检查它是否为空白。 如果是,则显示“输入值”消息。单击标准按钮时 文本框是空的,它正确验证并显示消息,但是当时 单击toolstripbutton它没有验证文本框,也没有显示任何消息。似乎我必须在中明确地编写验证代码 toolstripbutton_click当单个表单上有多个文本框和工具条按钮时,这个事件太麻烦了。

我想知道的是,点击工具条按钮时是否可以触发textbox_validating?处理工具条真的很头疼。

3 个答案:

答案 0 :(得分:3)

在toolstripbutton点击事件中写下以下内容:

Me.Validate()

答案 1 :(得分:2)

ToolStripItem类是特殊的,它们不是从Control派生的。其中一个副作用是它们不会将焦点从主动控制中移开。这可以防止Validating事件被触发。

你可以做几件事。您可以调用文本框'parent的ValidateChildren()方法。或者你可以自己移动焦点:

    private void toolStripButton1_Click(object sender, EventArgs e) {
        btnSave.Focus();
        if (btnSave.Focused) btnSave.PerformClick();
    }

答案 2 :(得分:0)

您可以从处理toolstripbutton单击事件的过程中调用textbox_validating过程,但在继续执行其余的toolstripbutton_click事件之前,您可能必须添加一些逻辑以查看它是否通过了验证。既然你说你有很多要验证的文本框,你可能要考虑创建一个返回true或false的Validate()函数并检查所有的文本框。然后你要做的就是检查Validate()= true是否从所有工具条按钮调用相同的函数,而不是一遍又一遍地复制相同的代码。