使用C#,如何在多行文本框中设置制表位?

5
有没有一种优雅的方式在 C# 中设置多行文本框中的自定义选项卡大小/位置?

WinForms还是WPF?(注意,我无法确定这是否会产生差异!) - AakashM
请参见https://dev59.com/aXM_5IYBdhLWcg3wn0rT,了解如何在Windows窗体文本框控件中设置制表符宽度。 - Mongus Pong
根据他的其他问题,可能是WinForms。 - SLaks
2个回答

10

你需要发送EM_SETTABSTOPS消息,就像这样:

static class NativeMethods {
    [DllImport("user32.dll")]
    public static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, ref int lParam);
}
static void SetTabs(TextBox box) {
    //EM_SETTABSTOPS - http://msdn.microsoft.com/en-us/library/bb761663%28VS.85%29.aspx
    int lParam = 16;  //Set tab size to 4 spaces
    NativeMethods.SendMessage(box.Handle, 0x00CB, new IntPtr(1), ref lParam);
    box.Invalidate();
}

哥们儿,你可以在网站上找到一些不错的小贴士。 - Matthew Whited

0
除了在vb 2013之外,微软的友好人士决定您不再需要窗口句柄,并且无法再获取它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接