如何填充TextBox中的文本?

时间:2017-04-22 19:50:35

标签: c#

下面的代码是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数组是完全没必要的,但我想使用它。

0 个答案:

没有答案