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

时间:2015-10-12 06:58:32

标签: c# winforms

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

3 个答案:

答案 0 :(得分:2)

类似的东西(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); 
}

答案 1 :(得分:0)

你的意思是这样吗?

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

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

答案 2 :(得分:0)

您可以使用数据绑定和来自此处的小助手Exchange UserControls on a Form with data-binding

以更加结构化的方式完成此操作
static void Bind(Control target, string targetProperty, object source, string sourceProperty, Func<object, object> 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));