下面的代码是Windows窗体应用程序的一种方法,它在textBox_TT中显示时间表。我希望时间表水平对齐(用户应该水平滚动以查看它们)。
为了实现水平对齐,我决定将每个时间表的第一行附加到formattedOutput,并用两个标签分隔它们(即“1 x 1 = 1 [\ t \ t] t 2 x 1 = 2 [\ t \ t] 3 x 1 = 3 ......“)。当我到达最后一次表(例如“... 1 x 10 = 10”)时,我附加一个回车符和一个换行符(\ r \ n)来创建一个新行。然后我将时间表的下一行附加到StringBuilder(即“1 x 2 = 2 [\ t \ t \ t] 2 x 2 = 4 ...”)并添加“\ r \ n”。我这样做直到完成时间表。
问题是10次表未正确对齐(垂直)。 This image shows the misalignment。一般来说,有没有办法在TextBox中填充文本,以便字符串长度不会弄乱填充?
private void button_displayTT_Click(object sender, EventArgs e)
{
// Initialize 2D array with the values requiered for the times tables.
int[,] numbers = new int[2, 10] {
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
};
StringBuilder formattedOutput = new StringBuilder("");
for (int i = 0; i < 10; ++i)
{
for (int j = 0; j < 10; ++j)
{
formattedOutput.Append($"{numbers[0, j]} x {numbers[1, i]} = {numbers[0, j] * numbers[1, i]}\t\t");
}
formattedOutput.Append("\r\n");
}
textBox_TT.Text = formattedOutput.ToString();
}
注意:我知道2D数组是完全没必要的,但我想使用它。