gpt4 book ai didi

vb.net - 使用 VB.Net 打印乘法表

转载 作者:行者123 更新时间:2023-12-02 07:03:05 25 4
gpt4 key购买 nike

当我尝试使用以下代码打印乘法表时,

    Dim se As String
Label1.Text = Space(35) & "九九乘法表" & vbCrLf
Label1.Text &= Space(35) & "-----------" & vbCrLf
For i = 1 To 9
Label1.Text &= Space(8 * (i - 1) + i)
For j = i To 9
se = i & "×" & j & "=" & i * j
Label1.Text &= se & Space(8 - Len(se))
Next j
Label1.Text &= vbCrLf
Next i

它给了我一个我想要的对齐良好的表格,如下图所示

enter image description here

如果我更改第 5 行中的 Label1.Text &= Space(8 * (i - 1) + i)

进入 Label1.Text &= Space(8 * (i - 1) ) ,表格结果如下:

enter image description here

我想我的问题是:为什么我必须添加更多“i”空格?

感谢埃德珀的回答。

但我只是很困惑为什么需要这样一个额外的增量空间?

假设我使用的是 Label1.Text &= Space(8 * (i - 1) ) ,那么第一个循环中将没有空格,第二个循环中将有 8 个空格,第三个循环中有 16 个空格...,为什么这不能使所有方程对齐?

更具体地说,在等式 1x1=1 之后有 3 个空格,因此在 1x2=2 之前有 8 个字符,那么如果我在第二个循环中有 8 个空格,则 2x2=4 应该与 1x2= 对齐2,但没有。这就是我想知道的。

最佳答案

Label1 控件使用什么字体?从屏幕截图中,我可以看到您没有使用固定宽度的字体。

如果您将字体更改为固定宽度字体系列(例如:Courier New),您将获得一个与代码 Label1.Text &= Space(8 * (i - 1)) 完美对齐的表格。 ,同时使用...) + i)代码将为您提供一个具有未对齐列的表格。

原因是,无论字体大小如何,固定宽度字体对于集合中的每个字符都具有相同的宽度。这也包括空格 (Chr(32))。而非定宽字体,每个字符都有不同的宽度。例如:字母Wi宽。并且空格也会有不同的宽度。

例如:

固定宽度字体:

1x1=1...1x2=2  
........2x2=4

非等宽字体:

1x1=1...1x2=2
........2x2=4

您可以在上面看到,在上面的两个“表格”中,我放置了 7 个点来插入第二行与第一行的第二列对齐。而在使用非等宽字体的表格中,2x2=4出现在它应该在的左侧。

这意味着,由于空间较窄,您需要附加更多空格以使其对齐,如下所示:

1x1=1...1x2=2
......2x2=4

在上面的示例表中,我必须输入 13 个点才能使其看起来对齐(或足够接近)。由于此页面使用其他字体来显示此表格。

就您而言,您很幸运,只需添加 i 即可完美对齐您正在使用的字体。 .

关于vb.net - 使用 VB.Net 打印乘法表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16370994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com