【问题标题】:Ignoring validation of TextBoxes when pressing a specific button按下特定按钮时忽略文本框的验证
【发布时间】:2011-05-25 14:36:31
【问题描述】:

我有一个带有TextBox 控件和Button 的Windows 窗体。每个TextBoxValidating 事件确保只能提交格式正确的输入(duh)。 Button 是一个 clear 按钮,用于重置表单、清除文本框值等。如果我在 TextBox 中写入了非法内容,然后按 clear 按钮,当然会触发验证,我得到一个MessageBox 告诉我这个。所以我不能使用 Clear 按钮,除非我手动清除无效的TextBox

我知道Validating 事件触发的原因是当我按下clear 按钮时TextBox 失去焦点,但是在这种情况下有没有办法忽略验证?

我尝试将 Form.AutoValidate 设置为禁用,但我从未得到任何验证,这并不是我想要的。

【问题讨论】:

    标签: .net winforms validation


    【解决方案1】:

    将清除按钮的CausesValidation 属性设置为false 就足够了。如果您选择了文本框并按下按钮,这种方式不会触发验证。

    来自CausesValidation 的 MSDN 条目:

    获取或设置一个值,该值指示控件是否会导致对任何需要验证的控件执行验证。

    【讨论】:

    • 由于某种原因,在我的情况下似乎不起作用。验证无论如何都会发生。也许它会有所不同,按钮位于它自己的面板中,而验证文本框位于其自己的面板中的选项卡控件中的另一个面板中的另一个面板中,该面板与按钮所在的面板相同。我会实验。
    • 是的,你可能是对的。从我的脑海中,我真的无法告诉你什么对这种特定情况有效。当我有一些空闲时间时,我会尝试使用该场景创建一个表单,看看会有什么效果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 2015-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多