满足条件时启用按钮

时间:2016-02-27 13:53:27

标签: c# winforms

我正在c#中构建一个简单的winforms应用程序,它由几种形式组成。

我的应用程序中的一个表单包含一些不同的控件,它们必须满足表单有效的某些条件,以及一个接受按钮。

我想要的是在所有字段都有效之前禁用按钮,然后在满足条件时启用它,但我找不到任何方法来执行此操作...

我遇到OnValidating \ OnValidated,但他们只在acceptButton_Click上调用。这当然要求我默认启用该按钮,并为其指定表单的AcceptButton属性。

我记得wpf有类似的东西(过滤器吗?),但我不确定winforms存在这样的东西。

1 个答案:

答案 0 :(得分:0)

如果您的表单包含textBox1checkBox1,那么您可以处理事件并调用方法,以更新按钮:

    private void textBox1_TextChanged(object sender, EventArgs e) {
        updateButton();
    }

    private void checkBox1_CheckedChanged(object sender, EventArgs e) {
        updateButton();
    }

    private void updateButton() {
        button1.Enabled = textBox1.Text != string.Empty && checkBox1.Checked /* && other conditions */;
    }

您还可以处理Validating事件:

    private void textBox1_Validating(object sender, CancelEventArgs e) {
        updateButton();
    }

    private void checkBox1_Validating(object sender, CancelEventArgs e) {
        updateButton();
    }

你会在这里找到更多的想法: