C# richTextBox不同的单词输入设置不同的颜色,类似开发环境那样

雾中路人 2014-12-22 03:12:59
请教有没有办法实现根据不同的单词,在输入时就改变字体颜色,类似IDE那样
...全文
178 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
assky124 2014-12-23
  • 打赏
  • 举报
回复
sharpdevelop 开源的IDE 自己研究下
枫0子K 2014-12-22
  • 打赏
  • 举报
回复
引用 7 楼 cqc_123 的回复:
@Yokeqi Idea有缺陷的,如果输入关键字后紧随单引号或者双引号,关键字还是显示的关键字颜色,不能简单一空格区分
姐姐,你可以说我的思路方向是错的,这个没问题能接受~,但我给你提供Idea并不是就OK,具体实现算法你要自己琢磨。难道要我们陪你一起头脑风暴出整个程序实现啊~~晕。 另外,我这个空格的判断方法只是举一个栗子,别当真好不好... 你要深究的话你是不是还要考虑整个文件复制-粘贴,然后分析整篇文本的关键字这样的问题啊...
雾中路人 2014-12-22
  • 打赏
  • 举报
回复
@Yokeqi Idea有缺陷的,如果输入关键字后紧随单引号或者双引号,关键字还是显示的关键字颜色,不能简单一空格区分
枫0子K 2014-12-22
  • 打赏
  • 举报
回复
嘿嘿,这种技术好玩。 我提供几个Idea,希望对你有帮助。 1. 你要有个分析单词的算法,取当前光标左右的文本(到空格为止为一个单词)。 2. 到关键字字典中匹配单词是否为关键字。 3. 如果是关键字,则记录光标位置SelectionStart。 然后关键代码来了:

int preSelectionStart = richTextBox1.Text.Length - 1;
richTextBox1.Text = "Hello World!";
richTextBox1.Select(6, 5);
richTextBox1.SelectionColor = Color.Red;
richTextBox1.SelectionStart = preSelectionStart;//恢复光标位置
如果做出来了记得私信告诉下我哈。
雾中路人 2014-12-22
  • 打赏
  • 举报
回复
我想做类似开发环境里那样,如,在VS中输入“private”关键字,就会显示关键字的颜色,双引号下的字符串又显示其他的不同的颜色等等字体颜色区分
於黾 2014-12-22
  • 打赏
  • 举报
回复
你只要找到单词的位置,然后可以代码选择文本,代码改变当前选择的文本的颜色,改完重新把当前光标放到没执行代码前的位置去
於黾 2014-12-22
  • 打赏
  • 举报
回复
你可以在textchanged事件里去判断,把关键字放到数组里,循环遍历查找,然后设置颜色 但是不要企图在用户输入完整的单词前就让它变色 人工比对也不可能那么智能,何况是计算机
於黾 2014-12-22
  • 打赏
  • 举报
回复
输入时就改变颜色?IDE也没那么智能吧 你没输入完之前,鬼知道你到底输入完是个神马
熙风 2014-12-22
  • 打赏
  • 举报
回复
这就要你自己设置了,什么单词设置成什么颜色

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧