【问题标题】:Add a a new line in rich text box?在富文本框中添加新行?
【发布时间】:2020-03-27 15:21:13
【问题描述】:

所以,我正在尝试用 C# 创建一个终端。我为“shell”区域选择了一个富文本框,基本上每次用户按下回车键时,我都会同时添加一个符号。然而,问题是光标不在符号前面,而是在新行上。这是简单的代码:

terminal.AppendText("\n>");

所以,基本上,如果这里的空间是|,那么我想要的是:

> |

但我得到的是:

>
|

我知道这可能与按下回车键时如何添加新行的更广泛问题有关。这里还需要什么?

编辑:完整代码

if(e.KeyCode == Keys.Enter) 
{
   AddLine();
}

AddLine() 在哪里:

private void AddLine() 
{
   terminal.AppendText("\n>");
}

提醒: terminal 是我的 Windows 窗体应用程序中的富文本框。另外,条件语句在富文本框的KeyDown()方法上。

【问题讨论】:

  • 你的意思是像动画中的here吗? Enter Command 控件是 RTB。
  • @Jimi 这对我有什么帮助?请解释....
  • every time the user presses enter 你必须抑制那个按键。向我们展示完整的代码存根。
  • @LarsTech 我编辑了我的帖子。
  • 好吧,您可以保留一些空间,使用SelectionIndent 属性并添加一个用户干预无法触摸的符号,因为它位于属性创建的不可访问区域中。

标签: c# winforms richtextbox


【解决方案1】:

您需要阻止回车键处理其对文本框的操作。尝试将e.SuppressKeyPress = true; 添加到您的代码中:

private void Terminal_KeyDown(object sender, KeyEventArgs e) {
  if (e.KeyCode == Keys.Enter) {
    e.SuppressKeyPress = true;
    terminal.AppendText("\n>");
  }
}

【讨论】:

  • 只是一个后续问题,如果我想阻止用户删除>符号,我是否使用与Keys.Backspace相同的SuppressKeyPress方法?
  • @GauravMall 这有点复杂。 RichTextBox 有一个 SelectionProtected 属性,可以“保护”突出显示的文本范围。
  • 好的,会检查的。谢谢!
  • 你最好的!非常感谢:)
猜你喜欢
  • 1970-01-01
  • 2014-10-31
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多