1、设置不自动选择字词

RichTextBox在选择文字的时候,如果没有关闭自动选择字词功能,我们有时候选择的时候会自动将光标前后的字或者词连接在一起进行选择。

RichTextBox有属性AutoWordSelection 设置为false但是不起作用,需要在窗体的load或者加载后设置才能起作用。

private void Form_Load(object sender, EventArgs e)
{
//去除RichTextBox自动选择字词
richtextbox1.AutoWordSelection=false;
}

2、取得已被选中的内容

richtextbox1.SelectedText

3、代码选中文字,并对选中文字修改颜色

//选中要改变颜色的文字
richtextbox1.Select(position, length);
//修改选中文字颜色
richtextbox1.SelectionColor = Color.Red;

4、自动滚动滚动条到光标位置

//让RichTextBox获得焦点
richtextbox1.Select();
//将光标位置在RichTextBox的最后
richtextbox1.Select(richtextbox1.TextLength,0);
//滚动条滚动到光标位置
richtextbox1.ScrollToCaret() ;

5、设置是否自动换行

设置RichTextBox的 WordWrap 属性,true 为自动换行,false 为不自动换行。

6、接受tab键

设置 AcceptsTab 属性为 True

7、RichTextBox特殊符号输入辅助窗体

  • 首先建一个Winform窗体spcalCharWindow 用于显示特殊符号辅助窗体,设置TopMost = true

  • 在窗体里面用ListView 显示特殊符号。
private void spcalCharWindow_Load(object sender, EventArgs e)
{
lv1.MultiSelect = false;
lv1.Scrollable = true; StringBuilder sb = new StringBuilder(200);
sb.Append("①②③④⑤⑥⑦⑧⑨⑩");
sb.Append("αβγδεζηφωοπθικλμνξχΩ");
sb.Append("ρστυψАБВГДЕЁЖЗИЙКЛМО");
sb.Append("НПРСⅨⅩⅪⅫⅧⅦⅥⅤⅣⅢⅡⅠЯЮЭТ");
sb.Append("УФХЦЬЪЧШЩ≈≡≠≤≥≮≯<>±+");
sb.Append("-×÷/∫∮∝∞∷∧∨∑∏∪∩∈∵∴⊥");
sb.Append("∠⌒⊙≌∽√°′″$£¥‰%℃¤¢§№");
sb.Append("△→←↑↓♂♀■");
sb.Append("ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧÀÁÂÃÅÄÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÖÕØÙÚÛÜÝÞŠŸŒ");
sb.Append("àáâãäåæçèéêëìíîïðñòóõôöøùúûüýþšÿœ");
sb.Append("āáǎàōóǒòêńēéěèīíǐìňūúǔùǖǘǚǜü"); //拼音注音 for (int i = 0; i < sb.Length; i++)
{
lv1.Items.Add(sb[i].ToString());
lv1.Items[i].Tag = sb[i].ToString();
}
}
  • 在窗体中定义一个 public Action<string> InputeSpecal 委托。
  • 点击生僻字辅助按钮后,弹出窗体,注册委托事件 InputeSpecal
private void btnSpecailChar_Click(object sender, EventArgs e)
{
SpcalCharWindow spcalCharWindow = new SpcalCharWindow();
spcalCharWindow.InputeSpecal = (str) =>
{
//我的是在一个容器里面找到当前激活的RichTextBox,这个逻辑不用参照
var activeControl = splitContainerTitle.ActiveControl;
if (activeControl != null && activeControl is RichTextBox)
{
//将生僻字赋值到粘贴板上,
Clipboard.SetText(str);
//找到激活RichTextBox
var activeRichTextBox = activeControl as RichTextBox;
//通过Paste粘贴过去,因为我们的光标在辅助窗体上,所以无法获得RichTextBox的光标位置
//这一步是实现 不用RichTextBox获得光标的关键,因为获得光标会使住窗体和辅助窗体切换,体验极差
activeRichTextBox.Paste();
}
};
spcalCharWindow.Show(this);
}
  • ListView 点击事件
 private void lv1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (lv1.SelectedItems.Count > 0)
{
string str = lv1.SelectedItems[0].Tag.ToString();
if (!string.IsNullOrEmpty(str))
{ InputeSpecal?.Invoke(str);
}
}
}
  • 测试效果

WinForm RichTextBox 常用操作的更多相关文章

  1. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  2. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  3. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  4. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  5. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

  6. Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理

    摘要:Oracle数据库的库表常用操作:创建与添加表空间.临时表空间.创建表分区.创建索引.锁表处理 1.表空间 ■  详细查看表空间使用状况,包括总大小,使用空间,使用率,剩余空间 --详细查看表空 ...

  7. python 异常处理、文件常用操作

    异常处理 http://www.jb51.net/article/95033.htm 文件常用操作 http://www.jb51.net/article/92946.htm

  8. byte数据的常用操作函数[转发]

    /// <summary> /// 本类提供了对byte数据的常用操作函数 /// </summary> public class ByteUtil { ','A','B',' ...

  9. Linux Shell数组常用操作详解

    Linux Shell数组常用操作详解 1数组定义: declare -a 数组名 数组名=(元素1 元素2 元素3 ) declare -a array array=( ) 数组用小括号括起,数组元 ...

随机推荐

  1. JS中原型与原型链

    一. 普通对象与函数对象 JavaScript 中,万物皆对象!但对象也是有区别的.分为普通对象和函数对象,Object .Function等 是 JS 自带的函数对象.下面举例说明. var o1 ...

  2. CodeReview杂谈

    豆皮粉儿们,大家好,又见面啦,今天由字节跳动的"躬冯"带来一个 code review 的故事. 作者:躬冯 2020年元旦假期到来的时候,孙总攒了个局,又把当年一起创造过屎山的咱 ...

  3. Postman 根据nginx日志查账号

    1) GET:http://fwm.le-yao.com/api/backend/profile 2) Headers中,在KEY中添加 Content-Type ,对应的VALUE为 applica ...

  4. JS019. 原生JS使用new Blob()实现带格式导出Word、Excel(提供无编程基础将页面上表格导出到本地的方法)

    导出效果 代码实现 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  5. 博主有偿带徒 《编程语言设计和实现》《MUD游戏开发》《软件破解和加密》《游戏辅助外挂》《JAVA开发》

    <考研专题>操作系统原理 理论解答:8K 实战 1.5W CPU设计 理论解答:1W 实战 2.5W <编程语言设计和实现>初窥门径<5K>:编译原理.编译设计小试 ...

  6. wpf内存泄漏问题

    http://www.cnblogs.com/Cindys/archive/2012/05/17/2505893.html http://blogs.msdn.com/b/jgoldb/archive ...

  7. mac下secureCRT的使用技巧

    1.设置secureCRT不掉线的方法 Options->Global Options->General->Default Session->Edit Default Sett ...

  8. PHP中针对区域语言标记信息的操作

    相信大家对 zh_CN 这个东西绝对不会陌生,不管是 PHP 中,还是在我们的网页上,都会见到它的身影.其实这就是指定我们的显示编码是什么国家或者地区的,使用何种语言.对于这种区域语言的标记来说,PH ...

  9. DS博客作业04--图

    这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业04--图 这个作业的目标 学习图结构设计及相关算法 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1. ...

  10. Chrome插件 - Modify Headers for Google Chrome(IP欺骗)

    前景: 该篇随笔的由来:公司某项目(B/S架构)最近新加了一个后台日志功能,需要抓取到访问项目的主机IP,记录目标主机的操作,因此就需要不同得IP访问.并且项目专用浏览器是Chrome内核. Modi ...