我在编辑器上工作,我想在智能感知出现后替换最后一条评论。
还有更多这里的场景,
我得到了richtextbox(rtb) 作为代码编辑器,以及一个隐藏的combobox(lb) 作为智能感知。每次我从richtextbox(rtb)输入单词时,我输入“as”,组合框将出现(如智能感知),关键字以“as”开头。
除了我从组合框中选择一个项目后,所有功能现在都在工作
sample string(combo box items): asd, asdf, asdfg .
然后假设我在richtextbox中输入然后我从组合框中选择'asd',然后当我按下输入时输出将是:
作为asd
代替:
作为(仅)
更多继承人我的关键事件代码:
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 = 评论 + " " + 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,"");
}