【问题标题】:How can i add a new line to richTextBox without making space/empty line after the new line?如何在richTextBox 中添加新行而不在新行之后留出空格/空行?
【发布时间】:2017-07-15 22:55:56
【问题描述】:
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);
            }
        }

如果我向下滚动到富文本框的底部并单击输入,这将工作一次,它将添加一个新行。 如果最后一行是 191,则新行将是 192。或者如果最后一行是 000191,则新行将是 000192。

但是我有两个问题:

首先,这只有在我向下滚动到底部并添加新的最后一行后单击输入时才有效。但是,如果我想添加一个新行并在两条现有行之间的某处给它一个数字?那么我如何重新编号整行?例如,如果我单击行 0033 和 0035 之间的输入键,则新行是 0034,但已经存在的行 0034 现在应该是 0035,而 0035 将是 0036...

第二个问题是每次在底部我都会点击进入它会使新行空新行然后添加行。我需要“\r\n”来使其成为新行,但是下次我单击输入时,它将首先创建新的空行。我怎样才能避免空行,但它会在最后一行之后添加一个新行?

【问题讨论】:

  • 什么是padnumbers?给我们更多数据!
  • 你到底想做什么,为什么?

标签: c# .net winforms


【解决方案1】:

对于您的第一个问题,如果您在中间行按回车键,它将在底部添加新行,因此存在的 0034 将是 0035。 但是,如果您需要对插入符号位置所在的这一行做一些事情,您可以查看this post

对于您的第二个问题,我检查了您的代码,您只需要从代码中删除 \r\n ,因为当您点击输入时,您会添加新行。 如果你想保留 \r\n 你可以使用

   e.SuppressKeyPress=true;

这将禁用回车键创建的新行。

【讨论】:

  • AppendText() 不添加新行!
  • 是的,你是对的,我编辑了,他按下的输入是添加新行。
猜你喜欢
  • 2023-03-06
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2022-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多