Mit Microsoft Winform controlsist es unmöglich, Ihr Problem richtig zu lösen, ohne eine kleine Problemumgehung, die ich unten erläutern werde.
PROBLEM
Das Problem bei der einfachen Verwendung "\t"oder vbTabbesteht darin, dass, wenn mehr als eine TextBox angezeigt wird und diese Ausrichtung für alle TextBox eingehalten werden muss, die EINZIGE "\t"oder vbTabLösung etwas anzeigt, das NICHT IMMER korrekt ausgerichtet ist.
Beispiel in VB.Net:
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
wird angezeigt

Wie Sie sehen können, wird der ageWert für François-Victornach rechts verschoben und nicht mit dem ageWert von zwei anderen Textfeldern ausgerichtet.
LÖSUNG
Um dieses Problem zu lösen, müssen Sie die Position der Registerkarten mithilfe einer bestimmten SendMessage()API-Funktion user32.dll festlegen (siehe unten).
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
Das folgende Formular wird angezeigt

Sie können jetzt sehen, dass alle Werte korrekt ausgerichtet sind :-)
BEMERKUNGEN
MultilineDie Eigenschaft der TextBox muss auf True gesetzt sein . Wenn diese Eigenschaft auf False gesetzt ist, wird die Registerkarte wie zuvor positioniert.
Wie die AcceptsTabEigenschaft zugewiesen wird, ist nicht wichtig (ich habe getestet).
Diese Frage wurde bereits in StackOverflow behandelt
Achtung: Die Messeinheit für die Tabulatorposition ist kein Zeichen, sondern etwas, das 1/4 des Zeichens zu sein scheint. Deshalb multipliziere ich die Länge mit 4.
C # LÖSUNG
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);
}
}
}