我想知道如果文本框中没有文本,但是如果重新启用它,我可以设置一个按钮来禁用它?我会把它改成文字更改的事件吗?
答案 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));