C# RichTextbox的字体格式和颜色
来源:互联网 发布:网络女征婚骗局案例 编辑:程序博客网 时间:2024/05/28 22:11
【关于字体格式】
设置的是第一个字符的颜色,这时richtextBox的rtf中记录下位置0的颜色,重置text时,在rtf中的位置从位置0开始,因此颜色还是Color.Red,第三次也应该同样如此
richTextBox1.Text = "123";
richTextBox1.Select(0, 1);
richTextBox1.SelectionColor = Color.Red;
richTextBox1.Clear();//清除文本,包括样式
//或richTextBox1.Text="";
richTextBox1.Text = "abc";
richTextBox1.Text = "efg";
这样重置后的文本颜色就会是黑色.
【关键字着色】
publicpartialclass RichTextBox : Form
...{
public RichTextBox()
...{
InitializeComponent();
}
privatevoid tSql_TextChanged(object sender, EventArgs e)//文本框改变事件
...{
int index=this.tSql.SelectionStart; //记录修改的位置
this.tSql.SelectAll();
this.tSql.SelectionColor= Color.Black;
string[] keystr=...{"select", "from","where"," and"," or"," order"," by"," desc"," when"," case",
" then ", " end"," on"," in"," is"," else"," left"," join"," not"," null" };
for (int i = 0; i < keystr.Length; i)
this.getbunch(keystr[i],this.tSql.Text);
this.tSql.Select(index,0); //返回修改的位置
this.tSql.SelectionColor= Color.Black;
}
publicint getbunch(string p,string s)//给关键字上色
...{
int cnt=0;int M= p.Length;int N = s.Length;
char[] ss= s.ToCharArray(), pp= p.ToCharArray();
if (M> N) return 0;
for (int i = 0; i < N- M1; i)
{
int j;
for (j=0; j< M; j)
...{
if (ss[ij]!= pp[j])break;
}
if (j== p.Length)
...{
this.tSql.Select(i, p.Length);
this.tSql.SelectionColor= Color.Blue;
cnt;
}
}
return cnt;
}
}
【绘制颜色提议】
最好的做法是继承RichTextBox,重载新类的Paint方法。
并且在设置SelectionLength的时候,禁止控件的重绘过程,这样才不会出现被语法高亮的文本有一个突然选中的过程。
以下2个方法将会对你解决这一问题有很大的帮助.
[DllImport("user32")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, IntPtr lParam);
private const int WM_SETREDRAW = 0xB;
//停止控件的重绘
private void BeginPaint()
{
SendMessage(yourRichTextBox.Handle, WM_SETREDRAW, 0, IntPtr.Zero);
}
//允许控件重绘.
private void EndPaint()
{
SendMessage(yourRichTextBox.Handle, WM_SETREDRAW, 1, IntPtr.Zero);
yourRichTextBox.Refresh();
}
- C# RichTextbox的字体格式和颜色
- C# richTextbox的 字体格式颜色等等
- C# richTextbox的 字体格式颜色
- C# richTextbox的 字体格式颜色等等
- C# RichTextBox显示不同格式的字体
- c#中richtextbox显示不同的颜色
- [C#]设置RichTextBox的字体格式:粗体、斜体、下划线 【转】
- [C#]设置RichTextBox的字体格式:粗体、斜体、下划线 【转】
- 如何在C#下利用RichTextBox打开一个有文字格式和图片的Word文档
- c# RichTextBox用法——设置指定字符串的颜色
- 关于richtextbox中的字体颜色问题
- RichTextBox替换文字并改变字体颜色
- c#如何获取当前系统所有的字体和颜色?
- C# 中字体和颜色的XML序列化
- c# GroupBox 只修改标题的字体和颜色
- RichTextBox中用指定字体和颜色高亮显示指定字符
- 关于RichTextBox字体的问题
- 关于RichTextBox字体的问题
- vi编辑器入门(转载)
- Mysql初始化root密码和允许远程访问
- Oracle跟踪文件产生及说明
- WCF RIA 服务 (三十五)-- 身份验证、角色、个性化 6
- Android开发入门之发送XML数据和调用webservice
- C# RichTextbox的字体格式和颜色
- 前段弹窗实现方法
- 线性结构 循环队列
- Tomcat 第四讲
- 各种常见排序算法的比较
- poj 2378 Tree Cutting
- Android的Adapter的用法
- 大白话解析模拟退火算法
- linux进入图形界面的方法