C#,WPF中使用多文本显示数据,并对其数据进行关键字高亮等操作
需求:针对多文本信息显示,我们需要对其内容中的某些关键字或者某行进行高亮显示,并用不同颜色显示。
分析:在C#中,首先要进行多文本信息显示,可以RichTextBox(不要使用TextBox)控件,该控件由自动换行等功能,具体代码如下:
/// <summary>
/// 向RichTextBox控件中添加数据
/// </summary>
/// <param name="strLineLie">要显示的数据列表,有多少条,就添加多少行</param>
private void UpdateRichTextBox(List<string> strLineLie)
{
if (strLineLie.Count == )
{
richTextBox1.AppendText("\n\nNo Input Record Content!");
richTextBox1.SelectAll();
richTextBox1.SelectionAlignment = HorizontalAlignment.Center;
richTextBox1.SelectionFont = new System.Drawing.Font(richTextBox1.Font.FontFamily, 11.0f, FontStyle.Italic);
richTextBox1.SelectionColor = Color.Gray;
return;
}
//对文本设置对应关键字高亮显示
int index = ;
foreach (string input in strLineLie)
{
string inputStr = input + "\n";
this.richTextBox1.AppendText(inputStr);
if (input.StartsWith("*"))//注释
{
richTextBox1.Select(index, inputStr.Length);
richTextBox1.SelectionColor = Color.Green;
}
else //当行数据类型高亮
{
if (input.Split(' ')[].Length != )//每行数据中第一个空格前的关键字高亮
{
richTextBox1.Select(index, input.Split(' ')[].Length);
richTextBox1.SelectionColor = Color.Blue;
}
}
index += inputStr.Length;
}
//设置无效(必填)值高亮显示
HighText("Unknown|Unspecified", this.richTextBox1.Text);
}
/// <summary>
/// 搜索关键字高亮显示
/// </summary>
/// <param name="keyStrs"></param>
/// <param name="text"></param>
private void HighText(string keyStrs,string text)
{
foreach (string keyStr in keyStrs.Split('|'))
{
int start = , end = text.Length;
int index = richTextBox1.Find(keyStr, start, end, RichTextBoxFinds.None);
while (index != -)
{
richTextBox1.SelectionFont = new System.Drawing.Font(richTextBox1.SelectionFont, FontStyle.Underline);
richTextBox1.SelectionColor = Color.Red;
start = index + keyStr.Length;
index = richTextBox1.Find(keyStr, start, end, RichTextBoxFinds.None);
}
}
}
效果如下:
C#,WPF中使用多文本显示数据,并对其数据进行关键字高亮等操作的更多相关文章
- WPF中如何在文本外面加虚线外框
WPF中如何在文本外面加虚线外框 昨天突然被问到如何在wpf里面给一段文本加个虚线外框,由于有一段时间没玩wpf了,一时还真没想出来,虽然大概有个思路,但是也不保证正确.今天回到家,闲着没事情也就随便 ...
- WPF中StringFormat的用法--显示特定位数的数字
原文:WPF中StringFormat的用法--显示特定位数的数字 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/huangli321456/art ...
- WPF中TreeView控件数据绑定和后台动态添加数据(二)
写在前面:在(一)中,介绍了TreeView控件MVVM模式下数据绑定的方法.在这篇文章中,将总结给节点添加事件的方法,这样说有些不对,总之实现的效果就是点击某个节点,将出现对应于该节点的页面或者数据 ...
- WPF中TreeView控件数据绑定和后台动态添加数据(一)
数据绑定: 更新内容:补充在MVVM模式上的TreeView控件数据绑定的代码. xaml代码: <TreeView Name="syntaxTree" ItemsSourc ...
- WPF中添加一个文本输入框,按Enter回车,执行绑定的Command
在WPF+WMMV模式中使用键盘和鼠标事件的绑定代码如下: <TextBox x:Name="SearchBox" Text="{Binding SearchTex ...
- thinkphp不能够将ueditor中的html文本显示
因为这个问题花费了我好长时间,非常的急躁.fuck!! 这次我首先在富文本框中输入了一些文本,这些文本是带有样式的,比如是代码.然后存入数据库,但是当我再一次将它取出来打算放入富文本框中的时候,马丹, ...
- WPF中任务栏只显示主窗口
我们在用WPF开发的时候,常常会遇到在主窗口打开的情况下,去显示子窗口,而此时任务栏同时显示主窗口与子窗口.这样看起来很不美观.所以在弹出子窗口之前,设置它的几个相应属性,便不会出现这种问题了. // ...
- 关于Resouces.resx 在WPF中{x:Static}不显示内容只显示字段的问题解决办法
问题现象:<object property="{x:Static prefix:typeName.staticMemberName}" .../> 界面中只显示资源引用 ...
- MSDN 杂志:UI 前沿技术 - WPF 中的多点触控操作事件
原文 MSDN 杂志:UI 前沿技术 - WPF 中的多点触控操作事件 UI 前沿技术 WPF 中的多点触控操作事件 Charles Petzold 下载代码示例 就在过去几年,多点触控还只是科幻电 ...
随机推荐
- k.tt 研究下生成的逻辑代码:从壹开始前后端分离 [.netCore 填坑 ] 三十二║ 四种方法快速实现项目的半自动化搭建
更新 1.更新小伙伴 @大龄Giser 提出好点子:试试VS的插件扩展:VSIX.ItemProject等,将T4模板给制作插件,这里先记下,有懂的小伙伴可以自己先试试,我会在以后更新. 2.感谢小伙 ...
- 【深度学习篇】--神经网络中的池化层和CNN架构模型
一.前述 本文讲述池化层和经典神经网络中的架构模型. 二.池化Pooling 1.目标 降采样subsample,shrink(浓缩),减少计算负荷,减少内存使用,参数数量减少(也可防止过拟合)减少输 ...
- J2SE学习历程
2014/12/09 1.+两边有字符串的话,则另外的先转换为字符串再连接. int c = 12; System.out.println(“c=” + c); 2.如果a=2,b=a++,先赋值再运 ...
- 利用StackExchange.Redis和Log4Net构建日志队列
简介:本文是一个简单的demo用于展示利用StackExchange.Redis和Log4Net构建日志队列,为高并发日志处理提供一些思路. 0.先下载安装Redis服务,然后再服务列表里启动服务(R ...
- WebSocketSharp 的使用
Server 端示例代码: class Program { static void Main(string[] args) { var wssv = new WebSocketServer(" ...
- 学JAVA第十五天,方法重载及构造方法进一步了解
由于星期五生病了,所以就没写.今天上课,又来写了!!! 先来说方法的重载. 方法的重载就是有两个方法的方法名相同,但参数不一致,参数个数不一致,或参数的类型不一样. package pkg9;publ ...
- ajax验证用户名是否存在
jsp页面 <head> <script type="text/javascript" src="js/register.js">< ...
- vue项目中获取cdn域名插件
import axios from 'axios' let CdnPath = {} CdnPath.install = function (Vue, options) { Vue.prototype ...
- 使用 MapTiler 进行地图切片
在GIS开发中接触比较多的就是切图与发布,通常大家使用的是GlobalMapper.ArcGIS.GDAL等. 一般在使用Leaflet.js或其他框架开发时,使用的是TMS切片格式,大佬们基本用GD ...
- 实现DataTables搜索框查询结果高亮显示
DataTables是封装好的HTML表格插件,丰富了HTML表格的样式,提供了即时搜索.分页等多种表格高级功能.用户可以编写很少的代码(甚至只是使用官方的示例代码),做出一个漂亮的表格以展示数据.关 ...