2010-01-04 6 views
5

Есть ли изящный способ установки пользовательских размеров вкладок/позиций в многострочном текстовом поле на C#?Использование C#, как установить позиции вкладок в многострочном текстовом поле?

+0

WinForms или WPF? (обратите внимание, что я не могу сказать, будет ли это иметь значение!) – AakashM

+0

См. http://stackoverflow.com/questions/1298406/how-to-set-the-tab-width-in-a-windows-forms -textbox-control –

+0

По другим вопросам, возможно, WinForms. – SLaks

ответ

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(); 
} 
+0

Человек ... вы можете найти хороший сайт лакомых кусочков. –

0

Помимо В.Б. 2013 дружелюбные люди в Microsoft решили вам больше не нужно обрабатывать окна, и вы больше не можете получить на него.