C#开发高亮语法编辑器(一)——TextBox ,RichTextBox

本文介绍了使用C#的RichTextBox控件简单开发一个高亮语法编辑器的过程,包括基本设置、语法高亮、关键字提示和行号显示的挑战。虽然TextBox适合快速开发,但其功能有限,RichTextBox提供了更多可能性。然而,通过RichTextBox实现行号显示存在困难,因无法直接监测滚动条状态。
摘要由CSDN通过智能技术生成

 C#简单实现高亮语法编辑器(一)
         ——TextBox ,RichTextBox的局限性


一、RichTextBox基本设置
二、实现语法高亮
三、关键字提示
四、实现行号

就简单快速得开发文本编辑器TextBox 最为简单,大家用得也多,缺点是无法实现复杂的操作。RichTextBox虽然是则功能比它强大很多。

TextBox.gif
图 1.1  输入框控件关系



这里要实现以下功能的编辑器:
1、实现语法高亮;
2、关键字提示;
3、行号。

显然TextBox 无法完成我们的任务,虽然都派生自TextBoxBase,但就控制力而言RichTextBox比它优秀很多。这里选用RichTextBox尝试开发。

注:以下只讨论简单开发,不考虑复杂的关键字查找机制。

一、RichTextBox基本设置

这里先建立一个工程,建立窗体Form1。
可以简单添加RichTextBox控件,可以在Form1_Load中建立。代码如下:

 1               this .WindowState  =  System.Windows.Forms.FormWindowState.Maximized;
 2 
 3              RichTextBox rich  =   new  RichTextBox();
 4              rich.Multiline  =   true ;
 5              rich.Height  =   this .Height  -   100 ;
 6              rich.Width  =   this .Width  -   100 ;
 7              rich.Left  =   40 ;
 8              rich.Top  =   40 ;
 9              rich.WordWrap  =   true ;
10              rich.Text  =   " 12345678 " ;
11              rich.ScrollBars  =  RichTextBoxScrollBars.ForcedVertical;
12               this .Controls.Add(rich);


这样就建立了简单的RichTextBox,宽度和高度都设置了。没有做Form1窗体缩放的处理。

二、实现语法高亮

在RichTextBox里实现语法高亮还是非常简单的。可以使用

1              rich.Select( 0 , 1 );
2              rich.SelectionFont  =   new  Font( " 宋体 " 12 , (FontStyle.Regular));
3              rich.SelectionColor  =  Color.Blue;

意思是,先选择第一个字母,按上面的设置,选择到了数字‘1’,然后设置这个字的字体大小,再设置字的颜色。

如果对关键字进行处理(这里只处理光标向后流动的情况)
首先添加输入事件

1        rich.KeyDown  +=   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          
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值