我正在c#中构建一个简单的winforms应用程序,它由几种形式组成。
我的应用程序中的一个表单包含一些不同的控件,它们必须满足表单有效的某些条件,以及一个接受按钮。
我想要的是在所有字段都有效之前禁用按钮,然后在满足条件时启用它,但我找不到任何方法来执行此操作...
我遇到OnValidating
\ OnValidated
,但他们只在acceptButton_Click
上调用。这当然要求我默认启用该按钮,并为其指定表单的AcceptButton
属性。
我记得wpf有类似的东西(过滤器吗?),但我不确定winforms存在这样的东西。
答案 0 :(得分:0)
如果您的表单包含textBox1
和checkBox1
,那么您可以处理事件并调用方法,以更新按钮:
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();
}
你会在这里找到更多的想法: