排列乘法表

时间:2014-10-22 23:16:25

标签: c#

private void multiBtn_Click(object sender, EventArgs e)
{
    for (int a = 1; a <= 10; a++)
        for (int b = 1; b <= 10; b++)
            lblTable.Text = (a + " * " + b + " = " + (a * b));

    for (int a = 1; a <= 10; a++)
        for (int b = 1; b <= 10; b++) 
            lblTable.Text += (a + " * " + b + " = " + (a * b));
}

当涉及到倍增时,它正在做我想要它做的事情。它没有排成一排。它打印出整数1到10的乘法。我只需要在行和列中使用它们,任何人都可以通过标签向我解释如何做到这一点。真的不知道怎么解释它在做什么,但是在我的gui中它打印出来像“10 * 10 = 1001 * 1 = 11 * 2 = 21 * 3 = 3”等等它就像那样继续前进。我甚至不确定为什么它从10 * 10 = 100

开始

2 个答案:

答案 0 :(得分:0)

目前还不清楚你想要的是什么。但请注意,您可以在每一行(Environment.NewLine)之间插入换行符以强制换行,以便在Label中的连续行(行)上显示文本。

例如:

lblTable.Text += a + " * " + b + " = " + (a * b) + Environment.NewLine;

答案 1 :(得分:0)

尝试使用换行符,将每个项目放在新行上。对于列,它有点棘手。使用固定宽度的字体和数字周围的一些填充应该可以。

首先,新行代码添加:

lblTable.Text += (a + " * " + b + " = " + (a * b) + "\n");

或者,许多人的首选格式是使用string.Format作为字符串:

lblTable.Text += (string.Format("{0} * {1} = {2}\n", a, b, (a * b)));

要使它们对齐,您可以使用PadLeft字符串方法。在下面的示例中,我假设ab将小于或等于两位数,而a * b将小于或等于3位数(请记住这只会如果你使用固定宽度的字体,如Consolas工作:

for (int a = 1; a <= 10; a++)
{
    for (int b = 1; b <= 10; b++)
    {
        lblTable.Text += (string.Format("{0} * {1} = {2}\n",
            a.ToString().PadLeft(2),
            b.ToString().PadLeft(2),
            (a * b).ToString().PadLeft(3)));
    }
}