C# RICHTEXTBOX取消回车换行添加行号功能

今日,客户要求在写病历时可以像wps或word那样自动添加序号,方便医生使用,但在网上没有找到相关例子,所以自己用比较笨的方法实现了一下。
主要用到的是richtextbox的keydown事件和TextChange事件

private void richTextBox_examDiagnosis_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                int line = richTextBox_examDiagnosis.Lines.Length;
                line+=1;
                richTextBox_examDiagnosis.AppendText("\n"+line.ToString() + "、");
                string text = richTextBox_examDiagnosis.Text.ToString();
            }
        }
private void richTextBox_examDiagnosis_TextChanged(object sender, EventArgs e)
        {
            string text = richTextBox_examDiagnosis.Text;
            int length = text.Length;
            if (length >= 1)
            {
                string text1 = text.Substring(length - 1,1);
                if(text1=="\n")
                { 
                text1 = text.Substring(0, length - 1);
                richTextBox_examDiagnosis.Text = text1;
                richTextBox_examDiagnosis.Select(text1.Length,0);
                }
            }
        }

思路:首先判断回车键是否按下,当按下时,进行当前行数统计,然后进行加1,同时在追加文本时要加上“\n”,且不能单独加此“\n”,否则会触发TextChanged事件。添加完行号后,如果不进行下一步处理,鼠标会自动换到下一行,因此,要在TextChanged事件中,将最后的换行符去掉。这样就实现了回车键按下,自动添加行序号的功能。

但是如果有更好的办法,还请网友指出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

weixin_42834523

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值