2010-01-04 8 views
5

Existe-t-il une manière élégante de définir des tailles/positions de tabulations personnalisées dans une zone de texte multiligne en C#?À l'aide de C#, comment définir les positions d'onglet dans une zone de texte multiligne?

+0

WinForms ou WPF? (Notez que je ne peux pas vraiment dire si cela fera une différence!) – AakashM

+0

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

+0

Basé sur ses autres questions, probablement WinForms. – SLaks

Répondre

10

Vous devez envoyer le message EM_SETTABSTOPS, comme ceci:

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

Man ... vous pouvez trouver quelques bons sites de tidbits. –

0

Outre par vb 2013, les gens sympathiques de Microsoft ont décidé que vous ne avez plus besoin des fenêtres poignée et vous ne pouvez plus nous mettre au travail.