c#计算多个文本框的字符

时间:2015-01-19 13:36:49

标签: c# textbox string-length

我有两个(并且会更多,但是对于这个例子,我将它保留为两个)文本框,我想将字符数统计为一个标签。

我有两个文本框叫做probDescTextbox和stepsToRepoTextbox。

我正在使用winforms和TextChanged事件。我不确定是否有办法让这个工作没有多个TextChanged事件,但如果我嵌套它我得到一个错误,如果我做第二个,我似乎无法得到数字添加。

CODE:

    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 个答案:

答案 0 :(得分:2)

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

修改

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

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

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

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

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