private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
string lastpadnum = padnumbers[padnumbers.Count - 1];
int desiredLength = lastpadnum.Length;
int nextnum = Convert.ToInt32(lastpadnum) + 1;
string nextpadnum = nextnum.ToString().PadLeft(desiredLength, '0');
padnumbers.Add(nextpadnum);
richTextBox1.AppendText("\r\n" + nextpadnum);
}
}
如果我向下滚动到richtextbox的底部并单击输入它将添加一个新行。 如果最后一行是191,那么新的是192.或者如果最后一行是000191,那么新的将是000192。
但我有两个问题:
首先,只有在我向下滚动到底部并添加新的最后一行后点击“输入”时,这才有效。但是,如果我想添加一个新行并在两个现有行之间的某个位置给它一个数字?那我怎么重新编号整行呢?例如,如果我点击第0033行和第0035行之间的输入键,则新行为0034,但已存在的行0034现在应为0035,0035将为0036 ...
第二个问题是每次在底部我会点击输入它会使新行空新行然后将添加该行。我需要" \ r \ n"使它成为新线但是下次我点击输入它将首先创建一个新的空行。我怎样才能避免空行,但是它会在最后一行之后添加一个新行?
答案 0 :(得分:0)
对于你的第一个问题,如果你在中间一行输入,它会在底部添加新行,所以0034存在将是0035。 但如果您需要对插入符号位置的这一行执行某些操作,您可以查看this post。
对于您的第二个问题,我检查了您的代码,您只需要从代码中删除\ r \ n,因为当您点击输入时添加新行。 如果你想保留\ r \ n,你可以使用
e.SuppressKeyPress=true;
这将禁用enter键所做的新行。