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

标签 c# winforms tabs textbox multiline

在 C# 的多行文本框中是否有一种优雅的方式来设置自定义制表符大小/位置?

最佳答案

您需要发送 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();
}

关于c# - 使用 C#,如何在多行文本框中设置制表符位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2000772/

相关文章:

android - 在 android 中使用 ActionBar Inside Fragment 类

c# - itextSharp ColumnText 只显示每个其他 foreach 循环短语

c# - 在 MVVM 中动态填充 Wrappannel

c# - 具有完成事件的异步方法

c# - 无法在 Winforms 控件中找到新的子类属性

ios - 在 Xcode 4.3 中的选项卡之间传递数据

c# - 使用 c# 目标时获取 "An expression is too long or complex to compile"

c# - 如何在单击 DatagridView 中的另一个复选框列时禁用复选框列

c# - 如何从 savefiledialog 获取完整路径并在 "startInfo.Arguments"中使用?

Emacs 不会将任何语言的缩进设置为 4 个空格