2024年6月1日发(作者:)
C#开发高亮语法编辑器(一)——TextBox ,RichTextBox
C#简单实现高亮语法编辑器(一)
——TextBox ,RichTextBox的局限性
一、RichTextBox基本设置
二、实现语法高亮
三、关键字提示
四、实现行号
就简单快速得开发文本编辑器TextBox 最为简单,大家用得也多,缺点是无法实现复杂的操作。RichTextBox
虽然是则功能比它强大很多。
图 1.1 输入框控件关系
这里要实现以下功能的编辑器:
1、实现语法高亮;
2、关键字提示;
3、行号。
显然TextBox 无法完成我们的任务,虽然都派生自TextBoxBase,但就控制力而言RichTextBox比它优秀很
多。这里选用RichTextBox尝试开发。
注:以下只讨论简单开发,不考虑复杂的关键字查找机制。
一、RichTextBox基本设置
这里先建立一个工程,建立窗体Form1。
可以简单添加RichTextBox控件,可以在Form1_Load中建立。代码如下:
1 State = zed;
2
3 RichTextBox rich = new RichTextBox();
4 ine = true;
5 = - 100;
6 = - 100;
7 = 40;
8 = 40;
9 ap = true;
10 = "12345678";
11 Bars = Vertical;
12 (rich);
这样就建立了简单的RichTextBox,宽度和高度都设置了。没有做Form1窗体缩放的处理。
二、实现语法高亮
在RichTextBox里实现语法高亮还是非常简单的。可以使用
1 (0,1);
2 ionFont = new Font("宋体", 12, (r));
3 ionColor = ;
意思是,先选择第一个字母,按上面的设置,选择到了数字‘1’,然后设置这个字的字体大小,再设置字的颜色。
如果对关键字进行处理(这里只处理光标向后流动的情况)
首先添加输入事件
1 n += new KeyEventHandler(rich_KeyDown); //这一行添加到Form1_Load中
2
3 void rich_KeyDown(object sender, KeyEventArgs e)
4 {
5 //throw new Exception("The method or operation is not implemented.");
6 }
建立关键字
1 public static List
2 {
3 List
4 ("function");
5 ("return");
6 ("class");
7 ("new");
8 ("extends");
9 ("var");
10 return list;
11 }
当KeyDown事件发生时,向前查找
1 //返回搜索字符
2 public static string GetLastWord(string str,int i)


发布评论