c#统计多个文本框的字符数

c# count characters of multiple text boxes

我有两个(而且会更多,但在本例中我将保留为两个)文本框,我想将它们的字符数合计到一个标签中。

我的两个文本框分别称为 probDescTextbox 和 stepsToRepoTextbox。

我正在使用 winforms 和 TextChanged 事件。我不确定是否有办法在没有多个 TextChanged 事件的情况下使它工作,但如果我嵌套它,我会收到一个错误,如果我再做一个,我似乎无法获得要添加的数字。

代码:

    private void probDescTextBox_TextChanged(object sender, EventArgs e)
    {
        int probDescLimit = probDescTextBox.Text.Length;
        int stepsToRepoLimit = stepsToRepoTextBox.Text.Length;
        int charLimit = probDescLimit + stepsToRepoLimit;

        if (charLimit >= 50)
        {
            probDescCharLabel.ForeColor = Color.Red;
            probDescCharLabel.Text = charLimit.ToString() + " Over Limit!!";
        }
        else
        {
            probDescCharLabel.ForeColor = Color.Black;
            probDescCharLabel.Text = charLimit.ToString();
        }
    }

我相信这很简单,但我找不到使用多个文本框的示例。

提前致谢。

您可以将文本更改事件连接到同一个处理程序。

编辑:

1.) 将事件处理程序的名称更改为更通用的名称,以便您知道它不是特定于 probDescTextBox:

 private void note_TextChanged(object sender, EventArgs e)
    {
       //Same code as you have above, or see note...
    }

注意:如果您需要知道哪个文本框触发了事件,请参阅答案here。您可以检查发件人。这将允许您仅设置触发事件的文本框的前景色。

2.) 如下所示在表单的构造函数中连接事件处理程序,或者如果您使用的是设计器,请更改每个文本框属性中的值 window:

public MyForm()
{
     //wire each textbox's TextChanged event to the same handler
     probDescTextBox.TextChanged += note_TextChanged;
     stepsToRepoTextbox.TextChanged += note_TextChanged;
}