按钮启用和禁用文本更改事件

我想知道如果文本框中没有文本,但是如果重新启用它,我可以设置一个按钮来禁用它? 我会把它改成文字改变的事件吗?

类似的东西(WinForms):

private void myTextBox_TextChanged(object sender, EventArgs e) { myButton.Enabled = !String.IsNullOrEmpty(myTextBox.Text); } 

编辑 :对于初始表单加载,您可以使用Load事件:

 private void myForm_Load(object sender, EventArgs e) { myButton.Enabled = !String.IsNullOrEmpty(myTextBox.Text); } 

你的意思是这样的吗?

 if (!string.IsNullOrEmpty(textBox1.Text)) button1.Enabled = true; else button1.Enabled = false; 

不要忘记您可以更改该按钮的默认属性。

您可以使用数据绑定以及来自此处的小帮助程序以更加结构化的方式在具有数据绑定的表单上使用Exchange UserControls

 static void Bind(Control target, string targetProperty, object source, string sourceProperty, Func expression) { var binding = new Binding(targetProperty, source, sourceProperty, true, DataSourceUpdateMode.Never); binding.Format += (sender, e) => e.Value = expression(e.Value); target.DataBindings.Add(binding); } 

请注意,这是可以在许多场景中使用的可重用代码段。 对于您的特定情况,您只需要(在复制上面的代码之后)将以下行放在表单加载事件中:

 Bind(button1, "Enabled", textBox1, "Text", value => !string.IsNullOrEmpty((string)value));