其他分享
首页 > 其他分享> > WinForm RichTextBox 常用操作

WinForm RichTextBox 常用操作

作者:互联网

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特殊符号输入辅助窗体

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();
    }
}
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);
}
 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);
        }
    }
}

标签:常用,RichTextBox,richtextbox1,窗体,光标,sb,Append,WinForm
来源: https://www.cnblogs.com/SunSpring/p/15431997.html