C# 如何用SelectedText替换上一条注释

C# 如何用SelectedText替换上一条注释,c#,winforms,C#,Winforms,我正在编写一个编辑器,我想在intellisense出现后替换最后一条评论 还有塞纳里奥 我得到了richtextbox(rtb)作为代码编辑器,还有一个隐藏的combobox(lb)作为intellisense。每次我从richtextbox(rtb)输入单词时,示例我输入“as”,combobox就会出现(像智能感知一样),其中的关键字以“as”开头 除了我从combobox中选择了一个项目之外,所有函数现在都在工作 sample string(combo box items): asd,

我正在编写一个编辑器,我想在intellisense出现后替换最后一条评论

还有塞纳里奥

我得到了richtextbox(rtb)作为代码编辑器,还有一个隐藏的combobox(lb)作为intellisense。每次我从richtextbox(rtb)输入单词时,示例我输入“as”,combobox就会出现(像智能感知一样),其中的关键字以“as”开头

除了我从combobox中选择了一个项目之外,所有函数现在都在工作

sample string(combo box items): asd, asdf, asdfg .
然后假设我在richtextbox中键入,然后从combobox中选择“asd”,然后当我按enter键时,输出为:

asd

而不是:

as(仅限)

更多信息,请参见我的keyevents代码:

 void lb_KeyDown(object sender, KeyEventArgs e)
    {

        if (e.KeyCode == Keys.Escape)
        {
            lb.Visible = false;
            lb.Items.Clear();
        }

        if (e.KeyCode == Keys.Enter)
        {
            int start = 0, end = 0;
            String line = rtb.Text.Substring(start, start - end);
            int index = start;

            string comment = line.Substring(index);
            rtb.SelectedText = lb.SelectedText.ToString();

        }
    }
注:我只是写:

rtb.SelectedText=comment+“”+lb.SelectedText.ToString()

现在我想看看其他函数,但那一行是我想要修复的。我甚至尝试:

 rtb.SelectedText = comment - lb.SelectedText.ToString();
但它表示运算符“-”不能应用于“string”和“string”类型的操作数

真的很感谢你事先的帮助

参数:

if (token == "letterA" || token.StartsWith("Ab") || token.StartsWith("ab") || token.StartsWith("AB"))
            {
                int length = line.Length - (index - start);
                string commentText = rtb.Text.Substring(index, length);
                rtb.SelectionStart = index;
                rtb.SelectionLength = length;
                lb.Visible = true;

                KeyWord keywordsHint = new KeyWord();

                foreach (string str in keywordsHint.ab)
                {
                    lb.Items.Add(str);
                    lb.SelectedIndex = lb.FindStringExact(str);
                }
                //token.Replace(lb.SelectedText,"");
            }

我认为这个问题/答案可能就是问题所在:

尝试使用:

rbt.所选文本=注释+“”+lb.文本


不要选择SelectedText。

这有点难说,因为这个问题很让人困惑,但是试试这个
rtb.SelectedText=comment.Replace(lb.SelectedText,”)无更改,但仍然感谢您的建议…添加了参数,希望您能帮助我:(不可能,如果我尝试,rtb中的所有文本都将被替换和删除)我明白了,对不起!因此,如果我理解正确,您希望“as asd”,结果只是“as”。也许您可以离开rbt.SelectedText并使用lb.Text?我甚至使用这个:rtb.SelectedText=lb.SelectedText.ToString();…但结果也一样没有变化:(