首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Toolstripbutton未验证文本框

Toolstripbutton未验证文本框
EN

Stack Overflow用户
提问于 2010-11-24 00:32:45
回答 3查看 2.2K关注 0票数 2

我有一个文本框,一个标准按钮和一个包含几个按钮的工具条。在textbox的validating事件中,我编写代码来检查它是否为空。如果是,那么它会显示一条消息'Enter Value‘。当在文本框为空的情况下单击标准按钮时,它会正确地验证并显示消息,但当单击toolstripbutton时,它不会验证文本框,也不会显示任何消息。似乎我必须在toolstripbutton_click事件中显式地编写验证代码,当单个表单上有多个文本框和工具栏按钮时,这太麻烦了。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-18 22:47:14

在toolstripbutton click event中写入以下内容:

代码语言:javascript
复制
Me.Validate()
票数 3
EN

Stack Overflow用户

发布于 2010-11-24 01:28:16

ToolStripItem类是特殊的,它们不是从控件派生的。这样做的一个副作用是,它们不会将焦点从活动控件上移开。这就阻止了验证事件的触发。

你可以做几件事。您可以调用textbox的父对象的ValidateChildren()方法。或者你可以自己移动焦点:

代码语言:javascript
复制
    private void toolStripButton1_Click(object sender, EventArgs e) {
        btnSave.Focus();
        if (btnSave.Focused) btnSave.PerformClick();
    }
票数 3
EN

Stack Overflow用户

发布于 2010-11-24 01:04:35

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4258372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档