当我在文本框中有一个字符串,如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