【问题标题】:How to simplify this "Clear" Command? [duplicate]如何简化这个“清除”命令? [复制]
【发布时间】:2019-10-08 00:58:55
【问题描述】:

这是我的 RESET 按钮代码。它相当复杂而且很长。

 textBox1.Text = string.Empty;
 comboBox1.Text = string.Empty;
 textBox2.Text = string.Empty;
 radioButton1.Checked = false;
 radioButton2.Checked = false;
 checkBox1.Checked = false;
 checkBox2.Checked = false;
 comboBox2.Text = string.Empty;
 textBox3.Text = string.Empty;
 textBox4.Text = string.Empty;
 textBox5.Text = string.Empty;

我想知道我可以使用循环或其他东西来简化这个命令吗?

【问题讨论】:

    标签: c#


    【解决方案1】:

    你的例子绝对不是复杂。它非常简单;毫无疑问,您的代码中发生了什么。而且,在我看来,它不是很长。我喜欢。

    话虽如此,如果你有很多代码清空多个文本框,你可以写一个像这样的小方法:

    void ClearTextboxes(params TextBox[] args)
    {
        foreach (var textbox in args) textbox.Text = string.Empty;
    }
    

    然后调用它

    ClearTextboxes(textBox1, textBox2, textBox3, textBox4, textBox5);
    

    或者,如果您打算对表单上的每个文本框执行此操作,您可以执行以下操作:

    foreach (var textbox in this.Controls.OfType<TextBox>()) textbox.Text = string.Empty;
    

    你可以对复选框和单选按钮做类似的事情,例如

    foreach (var checkbox in this.Controls.OfType<CheckBox>()) checkbox.Checked = false;
    

    附:如果您真的想让您的代码更易于使用,我会用有意义的名称重命名这些控件,例如而不是 textBox1 可能是 UserNameTextBox (或其他一些描述性名称)。这将是比缩短清晰的命令代码更大的改进。

    【讨论】:

    • 非常感谢您的帮助。效果很好
    猜你喜欢
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    相关资源
    最近更新 更多