RichTextBoxであれば、SelectionTabsプロパティにより、タブの位置を設定することができます。ただしこれはタブの位置をピクセル単位で、数値型の配列として指定するものです。
SelectionTabsプロパティを使わないのであれば、Win32 APIを使うことになります。EM_SETTABSTOPSメッセージを使って、タブ幅の文字数を指定できます。
次の例では、Button1をクリックすることにより、TextBox1のタブの幅を16にしています。
<System.Runtime.InteropServices.DllImport("User32.dll")> _ Shared Function SendMessage(ByVal hWnd As IntPtr, _ ByVal msg As Integer, ByVal wParam As Integer, _ ByVal lParam() As Integer) As IntPtr End Function Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click Const EM_SETTABSTOPS As Integer = &HCB SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, New Integer() {16}) End Sub
[System.Runtime.InteropServices.DllImport("User32.dll")] static extern IntPtr SendMessage( IntPtr hWnd, int msg, int wParam, int [] lParam); private void Button1_Click(object sender, System.EventArgs e) { const int EM_SETTABSTOPS = 0x00CB; SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, new int[] {16}); }
(この記事は、「.NETプログラミング研究」で紹介したものを基にしています。)
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。