Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在RichTextBox中对关键字进行高亮显示

在RichTextBox中对关键字进行高亮显示

作者头像
跟着阿笨一起玩NET
发布于 2018-09-18 07:28:18
发布于 2018-09-18 07:28:18
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

实际效果如下:

相关代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace HighLight
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void HighLightText()
        {
            string[] keywords =   {"select","distinct","from","where","order","by","group","null"};
            string[] functions =   { "isnull", "count", "sum" };
            string[] strings =   { @"'((.|\n)*?)'" };
            string[] whiteSpace =   { "\t", "\n", "   " };

            rtbSql.SelectAll();
            rtbSql.SelectionColor = Color.Black;

            HighLightText(keywords, Color.Blue);
            HighLightText(functions, Color.Magenta);
            HighLightText(strings, Color.Red);
            HighLightText(whiteSpace, Color.Black);
        }

        private void HighLightText(string[] wordList, Color color)
        {
            foreach (string word in wordList)
            {
                Regex r = new Regex(word, RegexOptions.IgnoreCase);

                foreach (Match m in r.Matches(rtbSql.Text))
                {
                    rtbSql.Select(m.Index, m.Length);
                    rtbSql.SelectionColor = color;
                }
            }
        }   

        private void btnHighLight_Click(object sender, EventArgs e)
        {
            HighLightText();
        }
    }
}

若要实现更复杂的功能,可以研究一下这个C#的IDE编辑器的代码。http://www.icsharpcode.net/OpenSource/SD/Default.aspx

完整源码下载

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2006-08-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[整理]如何做一个语法着色控件
很多IDE或者开发工具中都有语法着色的功能,这是如何实现的呢?笔者试着用C#做了一个Sample,基本上实现此功能。
跟着阿笨一起玩NET
2018/09/18
7020
多线程带智能采集策略的采集系统
    去年年底的时候曾经发过一个数据采集器《网页数据采集器》,那是专门针对某一个网站来进行采集的,如果需要采集新的网站内容,就需要修改代码并重新编译。     昨晚完成了一个带智能策略的采集系统。其实,这个策略的方案三年前就想好了,那时候打算用VB做,做了一半就搁置了。现在用C#才终于把这个方案实现了。     整个方案大概是这样的:     需要建立一个AC数据库,MSSQL也行,有四个表:PageType用于记录页面的种类,比如列表页和详细页两类;Url表用于记录要采集的网址,另外还有一个字段Type
大石头
2018/01/15
9480
.NET正则表达式
正则表达式提供了功能强大、灵活而又高效的方法来处理文本。 正则表达式丰富的泛模式匹配表示法使你可以快速分析大量文本,以便:
ccf19881030
2020/12/22
2.2K0
.NET2.0抓取网页全部链接【月儿原创】
.NET2.0抓取网页全部链接作者:清清月儿主页:http://blog.csdn.net/21a网络
Java架构师必看
2021/03/22
3010
提取网页中的超链接
usingSystem;usingSystem.Xml;usingSystem.Text;网络
Java架构师必看
2021/03/22
1.7K0
不用组件的url重写(适用于较大型项目)
先在网站根目录下建立一个config文件夹,再在此文件架下建立一个urls.config文件,这里记录url的配置信息代码如下
liulun
2022/05/08
4770
不用组件的url重写(适用于较大型项目)
使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪
如果某天改了一点代码但是没有完成,我们可能会在注释里面加上 // TODO。如果某个版本为了控制影响范围临时使用不太合适的方法解了 Bug,我们可能也会在注释里面加上 // TODO。但是,对于团队项目来说,一个人写的 TODO 可能过了一段时间就淹没在大量的 TODO 堆里面了。如果能够强制要求所有的 TODO 被跟踪,那么代码里面就比较容易能够控制住 TODO 的影响了。
walterlv
2023/10/23
4381
使用 Roslyn 分析代码注释,给 TODO 类型的注释添加负责人、截止日期和 issue 链接跟踪
MSDN官方的ASP.Net异步页面的经典示例代码
示例1.演示异步获取一个网址的内容,处理后显示在OutPut这一Label上 using System; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.IO; using System.Text; using System.Text.RegularExpressions; public partial class AsyncPag
菩提树下的杨过
2018/01/24
1K0
今天同事问我,如何将一串字符串中的数字取出来,此时不用正则表达式,更待何时。。。(Unity3D)
一、前言 正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。 例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regex
恬静的小魔龙
2022/08/07
1.1K0
今天同事问我,如何将一串字符串中的数字取出来,此时不用正则表达式,更待何时。。。(Unity3D)
[Regex]Get正则表达式
原文链接:http://blog.csdn.net/humanking7/article/details/51175937
祥知道
2020/03/10
5200
c#字符串操作方法实例
# 字符串是使用 string 关键字声明的一个字符数组。字符串是使用引号声明的,如下例所示: string s = "Hello, World!"; 字符串对象是“不可变的”,即它们一旦创建就无法更改。对字符串进行操作的方法实际上返回的是新的字符串对象。因此,出于性能方面的原因,大量的连接或其他涉及字符串的操作应当用 StringBuilder 类执行,如下所示: System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.App
欢醉
2018/01/22
1.8K0
Word中使用代码高亮插件
一年前我写了一个word2010的代码高亮插件,但当时那个版本有一个问题:在用word发布博客的时候,高亮的代码在博客中的格式乱了。今天有空改了一下这个插件,虽然还是有些瑕疵,但至少发布到博客后,格式不会乱了。主要改进是用ol和li代替了pre,虽然发布到博客后,ol中设置的style和class依然会被改动,但可以在博客中用css来纠正。
明年我18
2019/09/18
1.5K0
Word中使用代码高亮插件
C#使用正则表达式检查字符串中重复出现的词
明志德道
2023/10/21
2780
C#基础知识之字符串和正则表达式的案例分享
System.String类专门用于存储字符串,允许对字符串进行许多操作。此外,由于这种数据类型非常重要,C# 提供了它自己的关键字和相关的语法,以便使用这个类来轻松地处理字符串。使用运算符重载可以连接字符串:
用户7718188
2022/11/06
9340
[转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
目前LINQ to SQL的资料不多——老赵的意思是,目前能找到的资料都难以摆脱“官方用法”的“阴影”。LINQ to SQL最权威的资料自然是MSDN,但是MSDN中的文档说明和实例总是显得“大开大阖”,依旧有清晰的“官方”烙印——这简直是一定的。不过从按照过往的经验,在某些时候如果不按照微软划定的道道来走,可能就会发现别样的风景。老赵在最近的项目中使用了LINQ to SQL作为数据层的基础,在LINQ to SQL开发方面积累了一定经验,也总结出了一些官方文档上并未提及的有用做法,特此和大家分享。
菩提树下的杨过
2018/01/24
5K0
[转自JeffreyZhao]在LINQ to SQL中使用Translate方法以及修改查询用SQL
杭州驾驶员模拟预约 监控工具 插队工具(准)
--------------------------------------------------------
liulun
2022/05/09
4040
杭州驾驶员模拟预约 监控工具 插队工具(准)
PHP搜索关键字高亮显示
先定义一个实现的方法类 function highlighter_text($text, $words) { $split_words = explode( " " , $words ); foreach($split_words as $word) { $color = "#4285F4"; $text = preg_replace("|($word)|Ui" , "<span style=\"color:".$color."
程序猿的栖息地
2022/04/29
2.2K0
C#实现Excel模板导出和从Excel导入数据
      午休时间写了一个Demo关于Excel导入导出的简单练习 1.窗体 2.引用office命名空间 添加引用-程序集-扩展-Microsoft.Office.Interop.Excel 3.
用户1055830
2018/01/18
4.2K0
C#实现Excel模板导出和从Excel导入数据
在静态页面内实现关键字搜索并高亮显示
在静态页面内实现关键字搜索并高亮显示,效果如图: 示例代码如下,可以直接保存为一个html文件使用。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>页面内实现搜索并高亮</title> <style type="text/css"> .tb { width: 540px; margin:10px auto;
编程随笔
2022/09/08
1.1K0
在静态页面内实现关键字搜索并高亮显示
老瓶装新酒 - C#调用WM手机发送短信(源码)
一些系统,需要能够发送短信,量很小,平均每日10条。 运营商平台太贵,白名单很严格,小额只能发省内; 各短信平台有各种限制,大事件前后会关闭; 飞信以前可以用WAP发,但是现在多了验证码,搞不定了; 短信猫买来还得写控制程序,价钱和时间上…… 手上有两部废弃的WM手机,没有故障,只是老旧不好用! 有一个WM软件(后面有下载),它在WM手机上开启一个Http服务器,使得我们可以在PC上通过浏览器直接访问! image.png image.png 有收发短信的功能! 把手机WiFi性能跳到最大,关闭每x
大石头
2018/01/09
1.2K0
老瓶装新酒 - C#调用WM手机发送短信(源码)
推荐阅读
相关推荐
[整理]如何做一个语法着色控件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验