这是我的代码
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)
答案 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();
}