无法计算richtextbox中的行号

时间:2010-12-03 05:37:26

标签: c# richtextbox line

这是我的代码

private void Allocation_Matrix_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == 13)
        {
            int Total_Row_Check;
            Total_Row_Check = getRow();
            Textbox1.Text = Convert.ToString(Total_Row_Check);
            if (Total_Row_Check >= Convert.ToInt32(Total_Processes.Text))
            {
                MessageBox.Show("rows cannot exceed from total number of processess");
            }
        }
    }

    public int getRow()
    {
        int Row = 0;
        string[] arLines;
        int i;
        arLines = Allocation_Matrix.Text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        for (i = 0; i < arLines.Length; i++)
        {
            Row++;
        }
        return Row;
    }

我想更新 TextBox1 ,因为我在键盘中点击了richtextbox中的ENTER ...但是Textbox只显示FirstRow并显示One(1)

4 个答案:

答案 0 :(得分:2)

如何使用RichTextBox.GetLineFromCharIndex方法?它返回字符索引所在的从零开始的行号。

答案 1 :(得分:0)

Allocation_Matrix是你的RichTextBox吗?

请注意,RichTextBox.Text为换行符返回换行符(“\ n”)的文本,其中大多数所有其他Windows控件都使用回车符换行符号(“\ r \ n”)。

因此,如果您在Text属性返回的字符串上调用Split,则它将不包含任何Evironment.NewLine。

答案 2 :(得分:0)

尝试Allocation_Matrix.Text.Lines.Count()方法

答案 3 :(得分:0)

试试这个

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
var lineCount = richTextBox.Lines.Count();
numberLabel.Text = lineCount.ToString();
}