在Richtextbox中追加文本时,C#光标/插入符号不显示
我是编程新手,我正在制作C#Windows窗体应用程序,在选择树节点时,它会在Richtextbox中添加文本: Qs1:For me插入符号在选择树节点后不显示。 Qs2:像编辑器一样显示,如果单词以//(注释)开头,则应为绿色 谢谢在Richtextbox中追加文本时,C#光标/插入符号不显示,c#,treeview,richtextbox,C#,Treeview,Richtextbox,我是编程新手,我正在制作C#Windows窗体应用程序,在选择树节点时,它会在Richtextbox中添加文本: Qs1:For me插入符号在选择树节点后不显示。 Qs2:像编辑器一样显示,如果单词以//(注释)开头,则应为绿色 谢谢 if (treeView1.SelectedNode.Name == "Node1") { this.richTextBox1.SelectedText += " my text for Node1" + Enviro
if (treeView1.SelectedNode.Name == "Node1")
{
this.richTextBox1.SelectedText += " my text for Node1" + Environment.NewLine
richTextBox1.Focus();
}
else if (treeView1.SelectedNode.Name == "Node2")
{
this.richTextBox1.SelectedText += " my text for Node2" + Environment.NewLine
richTextBox1.Focus();
}
您提出了两个与
RichTextBox
相关的问题。StackOverflow的首选形式是。你可能会得到更多的回答和更集中的问题
也就是说:
+=
修改预先存在的或,因为这将清除该文本上的任何和所有RTF格式。相反,要插入文本,应将选择设置为所需位置,长度为零,然后插入该位置。因此:
public static void FocusAndAppendToSelectedText(this RichTextBox richTextBox, string text)
{
Action append = () =>
{
richTextBox.Focus();
var start = richTextBox.SelectionStart;
var length = richTextBox.SelectionLength;
var insertAt = start + length;
richTextBox.Select(insertAt, 0);
richTextBox.SelectedText = text;
};
if (richTextBox.InvokeRequired)
richTextBox.BeginInvoke(append);
else
append();
}
另外,您应该使用\n
而不是Environment.Newline
,因为无论如何