Використовуючи Microsoft Winform controls, неможливо правильно вирішити свою проблему без невеликого вирішення, яке я поясню нижче.
ПРОБЛЕМА
Проблема у використанні просто "\t"або vbTabполягає в тому, що коли відображається більше одного TextBox і це вирівнювання потрібно дотримуватися для всіх TextBox, ТІЛЬКИ "\t"абоvbTab рішення відображатиметься те, що НЕ ЗАВЖДИ правильно вирівняно.
Приклад у 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
відобразиться

як бачите, ageзначення для François-Victorзміщується вправо і не вирівнюється зі ageзначенням двох інших TextBox.
РІШЕННЯ
Щоб вирішити цю проблему, потрібно встановити позицію Tabs за допомогою певної SendMessage()функції API API32.dll, як показано нижче.
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
і відобразиться наступна форма

Видно, що зараз усі значення правильно вирівняні :-)
ЗАМОВЛЕННЯ
Multilineвластивість TextBox має бути встановлено на True . Якщо для цих властивостей встановлено значення False, вкладка розміщується як і раніше.
Як AcceptsTab призначити властивість, не важливо (я перевірив).
Це питання вже розглядається в StackOverflow
Застереження: мезоджер для позиції Tab - це не символ, а те, що здається 1/4 символу. Саме тому я помножую довжину на 4.
C # РІШЕННЯ
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);
}
}
}