如何用SelectedText替换最后一条评论

时间:2013-03-07 03:54:15

标签: c# winforms

我在编辑器上工作,我想在intellisense出现后替换最后一条评论。

更多的继承人,

我得到了作为代码编辑器的richtextbox(rtb),以及作为智能感知的隐藏组合框(lb)。每当我输入richtextbox(rtb)中的单词时,我会输入“as”样本,组合框将出现(如智能感知),关键字从“as”开始。

除了从组合框中选择项目

之外,所有功能现在都在工作
sample string(combo box items): asd, asdf, asdfg .

然后假设我在richtextbox中输入然后我从组合框中选择'asd',然后当我按回车时输出将是:

  

as asd

而不是:

  

as(only)

更多继承人我的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,"");
            }

1 个答案:

答案 0 :(得分:0)

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

ComboBox.SelectedText doesn't give me the SelectedText

尝试使用:

rbt。 SelectedText =评论+“”+ lb. 文字

而不是SelectedText。