前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WinForm RichTextBox 常用操作

WinForm RichTextBox 常用操作

作者头像
SpringSun
发布2021-10-25 13:35:13
1.7K0
发布2021-10-25 13:35:13
举报
文章被收录于专栏:技术赋能学术技术赋能学术

1、设置不自动选择字词

RichTextBox在选择文字的时候,如果没有关闭自动选择字词功能,我们有时候选择的时候会自动将光标前后的字或者词连接在一起进行选择。 RichTextBox有属性AutoWordSelection 设置为false但是不起作用,需要在窗体的load或者加载后设置才能起作用。

代码语言:javascript
复制
private void Form_Load(object sender, EventArgs e)
{
    //去除RichTextBox自动选择字词
    richtextbox1.AutoWordSelection=false;
}

2、取得已被选中的内容

代码语言:javascript
复制
richtextbox1.SelectedText

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

代码语言:javascript
复制
//选中要改变颜色的文字
richtextbox1.Select(position, length);
//修改选中文字颜色
richtextbox1.SelectionColor = Color.Red;

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

代码语言:javascript
复制
//让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 显示特殊符号。
代码语言:javascript
复制
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
代码语言:javascript
复制
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 点击事件
代码语言:javascript
复制
 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);
        }
    }
}
  • 测试效果
本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、设置不自动选择字词
  • 2、取得已被选中的内容
  • 3、代码选中文字,并对选中文字修改颜色
  • 4、自动滚动滚动条到光标位置
  • 5、设置是否自动换行
  • 6、接受tab键
  • 7、RichTextBox特殊符号输入辅助窗体
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com