编程语言
首页 > 编程语言> > c# – 文本框在加号前显示换行符

c# – 文本框在加号前显示换行符

作者:互联网

当我在文本框中有一个字符串,如QgMAAB LCAAAAAAABAB1UtFuQA,移动,移动,移动时,它会在每个加号()符号前自动显示换行符:

我可以使用自动换行符(WordWrap)而不是让加号让它进入新行吗?

我希望它看起来像这样:

(我删除了所有的加号以进行演示)

解决方法:

实际上,您可以通过继承自己的文本框来覆盖文本框的分词功能.

这对我有用:

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace myNamespace
{
    class MyTextBox : TextBox
    {
        const int EM_SETWORDBREAKPROC = 0x00D0;
        const int EM_GETWORDBREAKPROC = 0x00D1;

        delegate int EditWordBreakProc(string lpch, int ichCurrent, int cch, int code);

        protected override void OnHandleCreated(EventArgs e)
        {
            base.OnHandleCreated(e);
            if (!this.DesignMode)
            {
                SendMessage(this.Handle, EM_SETWORDBREAKPROC, IntPtr.Zero, Marshal.GetFunctionPointerForDelegate(new EditWordBreakProc(MyEditWordBreakProc)));
            }
        }

        [DllImport("User32.DLL")]
        public static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam);

        int MyEditWordBreakProc(string lpch, int ichCurrent, int cch, int code)
        {
            return 0;
        }
    }
}

这是对此处的优秀EditWordBreakProc示例的修改:

Underscore acts as a separator C# RTF Box

标签:c,winforms,line-breaks,textbox,string
来源: https://codeday.me/bug/20190629/1322524.html