满足条件时的启用按钮

本文关键字:启用 按钮 条件 满足 | 更新日期: 2023-09-27 18:36:26

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

我的应用程序中的其中一个窗体由几个不同的控件和一个接受按钮组成,这些控件必须满足某些条件才能使窗体有效。

我想要的是禁用按钮直到所有字段都有效,然后在满足条件时启用它,但我找不到任何方法可以这样做......

我遇到过OnValidating''OnValidated但它们只在acceptButton_Click上调用.这当然需要我默认启用按钮,并为其分配表单的AcceptButton属性。

我记得 wpf 有一些东西可以处理这种事情(过滤器?),但我不确定 winforms 是否存在这样的东西。

满足条件时的启用按钮

例如,如果你有一个包含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();
    }

您将在这里找到更多想法:

  • WinForm UI 验证
  • C# 验证 winforms 上文本框的输入。