【问题标题】:How to disable a button until a textbox is not empty in c#? [duplicate]c# - 如何禁用按钮直到文本框在c#中不为空? [复制]
【发布时间】:2020-10-20 15:02:15
【问题描述】:

我正在使用 C# 中的 Windows 窗体。用户填写文本框后,我需要启用 OK 按钮。

我的问题是,这个提到的文本框是在运行时创建的。以前没有在表单中设计过。

对于之前设计的文本框,可以使用 textbox_textchanged 事件来跟踪文本框的输入值。但是如何处理这种情况呢?

【问题讨论】:

标签: c# winforms textbox


【解决方案1】:

您还可以将事件处理程序附加到代码中创建文本框的位置,如下所示:

....

TextBox textbox = new TextBox();
textBox.TextChanged += textbox_textchanged;

...

以及像这样的事件处理程序:

private void textBox_TextChanged(object sender, EventArgs e)
{
    TextBox box = sender as TextBox;
    okButton.Enabled = !string.IsNullOrEmpty(box.Text);
}

【讨论】:

  • 如何为动态创建的多个文本框执行此操作
  • 取决于您的应用程序的逻辑。是否只有一个确定按钮,一旦所有文本框都被填充,您可以将相同的事件处理程序附加到所有文本框,将框添加到私有列表“myTextBoxes”,并将事件处理程序的主体更改为 okButton。已启用 = myBoxes.All(box => !string.IsNullOrEmpty(box.Text));
【解决方案2】:

您可以将委托添加到动态创建的文本框,就像您将委托添加到静态添加(在设计时)文本框一样。

TextBox txtBox = new TextBox();
txtBox.TextChanged += TextChangedHandler;

在您的委托TextChangedHandler 中,通过sender 参数访问TextBox,如下所示

void TextChangedHandler(object sender, EventArgs e)
{
  var txtBox = sender as TextBox;
  var text = txtBox.Text;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-28
    • 2021-07-03
    • 1970-01-01
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    相关资源
    最近更新 更多