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. ucosii操作系统内核源码学习第一篇

    根据书本理论介绍以及实际看内核源代码得出: 1. 操作系统默认定义了64个TCB块(为全局变量,编译时候以及分配了,创建一个任务就使用一个,删除一个任务就归还一个)(为什么最大只支持64个任务呢,我们 ...

  2. java 线程基础篇,看这一篇就够了。

    前言: Java三大基础框架:集合,线程,io基本是开发必用,面试必问的核心内容,今天我们讲讲线程. 想要把线程理解透彻,这需要具备很多方面的知识和经验,本篇主要是关于线程基础包括线程状态和常用方法. ...

  3. Docker详解(一)——

    Docker详解 https://www.cnblogs.com/antLaddie/p/14276726.html

  4. rootfs -根文件系统制作

    目录 目录 目录 概述 概念 根文件系统是什么 根文件系统中有什么 根文件系统的形式 Busybox 简介 什么是 linuxrc VFS 简介 Busybox 工具 Busybox 目录结构 Men ...

  5. HDFS基本命令

    1.创建目录 hadoop dfs -mkdir /data hadoop dfs -mkdir -p /data/data1   创建多级目录 2.查看文件 hadoop dfs -ls / 3.上 ...

  6. 在树莓派用C#+Winform实现传感器监测

    最近学校里发了个任务,说要做一个科技节小发明,然后我就掏出我的树莓派准备大干一场. 调料 Raspberry Pi 3B+ 树莓派GPIO扩展板 3.5寸电容触摸屏(GPIO接口) 土壤湿度传感器(G ...

  7. Jmeter扩展组件开发(4) - 自定义参数的实现

    CODE //URLNAME 就是在图形化界面当中显示的变量名称private static final String URLNAME = "URL";//设置界面当中默认显示的变 ...

  8. webrtc源码阅读理解一

    webrtc是一个比较成熟的实时音视频处理开源项目,一上来老大就扔给我一本webrtc native实践,虽然狠下心"翻"完了一遍,但是还是云里雾里的,在经过几个月的摸索之后,我大 ...

  9. postgres 基础SQL语句 增删改

    查看已创建的数据库:select datname from pg_database; 查看所有数据库的详细信息:select * from pg_database 创建数据库:create datab ...

  10. jQuery has been removed

    jQuery has been removed, 新的项目不要用jQuery了 这些问题都已经有了解决方案 * $()选择器, * $.ajax, * $dom.on("click" ...