我正在编写一个编辑器,我想在intellisense出现后替换最后一个注释。
更详细的是这位议员,
我得到了作为代码编辑器的richtextbox(rtb)和充当intellisense的隐藏组合框(Lb)。每次我从richtextbox(rtb)输入单词时,示例I键入"as",组合框就会出现(就像intellisense),关键字从"as“开始。
除了在我从组合框中选择一项之外,所有功能现在都在工作。
sample string(combo box items): asd, asdf, asdfg .然后假设输入的类型为richtextbox,然后从combobox中选择'asd‘,然后按enter键,输出将是:
as asd
而不是:
如(仅)
此外,这里还有我的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 =注释+“”+ 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,"");
}发布于 2013-03-07 04:04:37
我认为这个问题/答案可能是问题所在:
ComboBox.SelectedText doesn't give me the SelectedText
试着使用:
rbt.SelectedText =注释+“”+lb.文本
而不是SelectedText。
https://stackoverflow.com/questions/15262758
复制相似问题