Kullanarak Microsoft Winform controls, aşağıda açıklayacağım küçük bir çözüm olmadan sorununuzu doğru bir şekilde çözmek imkansızdır.
SORUN
Basit kullanımda "\t"veya vbTabbirden fazla TextBox görüntülendiğinde ve bu hizalamaya tüm TextBox, ONLY "\t"veyavbTab çözüm her zaman doğru hizalanmış DEĞİLDİR şey gösterecektir.
VB.Net'te örnek:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
TextBox1.Text = "Bernard" + vbTab + "32"
TextBox2.Text = "Luc" + vbTab + "47"
TextBox3.Text = "François-Victor" + vbTab + "12"
End Sub
gösterecek

gördüğünüz gibi, agedeğeri François-Victorsağa kaydırılır ve agediğer iki TextBox değeriyle hizalanmaz .
ÇÖZÜM
Bu sorunu çözmek için, SendMessage()aşağıda gösterildiği gibi belirli bir user32.dll API işlevini kullanarak Sekmeler konumunu ayarlamanız gerekir .
Public Class Form1
Public Declare Function SendMessage _
Lib "user32" Alias "SendMessageA" _
( ByVal hWnd As IntPtr _
, ByVal wMsg As Integer _
, ByVal wParam As Integer _
, ByVal lParam() As Integer _
) As Integer
Private Const EM_SETTABSTOPS As Integer = &HCB
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim tabs() As Integer = {4 * 25}
TextBox1.Text = "Bernard" + vbTab + "32"
SendMessage(TextBox1.Handle, EM_SETTABSTOPS, 1, tabs)
TextBox2.Text = "Luc" + vbTab + "47"
SendMessage(TextBox2.Handle, EM_SETTABSTOPS, 1, tabs)
TextBox3.Text = "François-Victor" + vbTab + "12"
SendMessage(TextBox3.Handle, EM_SETTABSTOPS, 1, tabs)
End Sub
End Class
ve aşağıdaki Form görüntülenecektir

Artık tüm değerlerin doğru hizalandığını görebilirsiniz :-)
UYARILAR
Multiline TextBox özelliği True olarak ayarlanması gerekir . Bu özellikler False olarak ayarlanırsa, Sekme önceki gibi konumlandırılır.
Nasıl AcceptsTabMülkün atandığı önemli değildir (test ettim).
Bu soru zaten tedavi edildi StackOverflow
Dikkat: Tab pozisyonu için mesure Unit karakter değil, karakterin 1 / 4'ü gibi görünen bir şeydir. Bu yüzden uzunluğu 4 ile çarpıyorum.
C # ÇÖZÜM
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
[DllImport("User32.dll", CharSet = CharSet.Auto)]
private static extern IntPtr SendMessage(IntPtr h, int msg, int wParam, uint[] lParam);
private const int EM_SETTABSTOPS = 0x00CB;
private const char vbTab = '\t';
public Form1()
{
InitializeComponent();
var tabs = new uint[] { 25 * 4 };
textBox1.Text = "Bernard" + vbTab + "32";
SendMessage(textBox1.Handle, EM_SETTABSTOPS, 1, tabs);
textBox2.Text = "Luc" + vbTab + "47";
SendMessage(textBox2.Handle, EM_SETTABSTOPS, 1, tabs);
textBox3.Text = "François-Victor" + vbTab + "12";
SendMessage(textBox3.Handle, EM_SETTABSTOPS, 1, tabs);
}
}
}