Не удалось посчитать номер строки в richtextbox - PullRequest
0 голосов
/ 03 декабря 2010

вот мой код

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 с клавиатуры ... но Textbox показывает только FirstRow и показывает One (1)

Ответы [ 4 ]

2 голосов
/ 03 декабря 2010

Как насчет использования RichTextBox.GetLineFromCharIndex метода? Возвращает номер строки, начинающийся с нуля, в котором находится индекс символа.

0 голосов
/ 27 января 2015

попробуйте

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
var lineCount = richTextBox.Lines.Count();
numberLabel.Text = lineCount.ToString();
}
0 голосов
/ 03 декабря 2010

попробуйте метод Allocation_Matrix.Text.Lines.Count ()

0 голосов
/ 03 декабря 2010

Является ли Allocation_Matrix вашим RichTextBox?

Обратите внимание, что RichTextBox.Text возвращает текст с переводом строки ("\ n") для разрывов строк, где большинство других элементов управления Windows используют возврат каретки, перевод строки ("\ r \ n").

Таким образом, если вы вызываете Split для строки, возвращаемой свойством Text, он не будет содержать никакого Evironment.NewLine.

...