对齐RichTextBox中的数字

Sin*_*ani 4 .net c# richtextbox winforms

我想在C#中打印一个乘法表,但它没有对齐!当我们在文本框中键入数字"n"表示:n*n表.我能做什么?

for (int i = 1; i <= Convert.ToInt32(textBox1.Text); i++)
{
    for (int j = 1; j <= Convert.ToInt32(textBox1.Text); j++)
    {
        richTextBox1.Text += Convert.ToString(i * j) + " ";
    }
    richTextBox1.Text += "\n";
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Rez*_*aei 7

设置RichTextBox等宽字体的字体Courier New,然后将文本添加到RichTextBox使用String.Format并设置乘法结果的对齐方式.使用正数对齐右侧并使用负数对齐左侧:

var n = 5;
for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= n; j++)
    {
        this.richTextBox1.AppendText(string.Format("{0,3}", i * j));
    }
    this.richTextBox1.AppendText(Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)

{0,3}您可以使用以下代码格式化最大字符长度,而不是格式化结果,这是一个属于的数字n*n:

左对齐:

string.Format("{0,-" +((n*n).ToString().Length + 1).ToString() +"}", i * j)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

右对齐:

string.Format("{0," +((n*n).ToString().Length + 1).ToString() +"}", i * j)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述