问题2:在文本框里输出计算的结果(数字)时,数字比较多而且位数不一样,两个数字间用了两个空格,所以输出自动换行时有的就把空格赶在了行首,不好看,也不符合我们的习惯,如果强制换行,又因为数字位数不一样,有的在强制换行前一行就满了,自动换行了,造成下一行只有一两个数字的时候又强制换行了,怎么解决呢?
本人业余,小白级别,大虾们别笑啊,用的是VS2012的VB环境。
9 个解决方案
#1
1.我不明白你label都透明了,那字怎么分辨出来
2.你一行放一个数字不行吗。不太明白什么意思,你要做成什么样
2.你一行放一个数字不行吗。不太明白什么意思,你要做成什么样
#2
我想要的结果是只显示label上的数字,因为label在进度条经过的地方,效果就象那只有一个显示进度百分比的数字,不影响背景颜色的变化。
要输出几百个数字,一行可以有一二十个呢,要一行放一个就不现实了,想要的是每行都能输出满,但又不能把两个数字间的空格赶到行首
要输出几百个数字,一行可以有一二十个呢,要一行放一个就不现实了,想要的是每行都能输出满,但又不能把两个数字间的空格赶到行首
#3
哦明白了,你要label的background是透明的是吧,你可以找一下label有没有属性叫background或者background color的属性,而且我记得label是默认背景色透明的
对于数字的话你就是要一行尽可能放满数字但是不换行是吧。那可以这样,先把所有数字都转换成string,确定一行可以容纳的最大字符数量,声明一个暂时储存一行输出的字符串比如叫temp,每次判断一行的最大字符数量减去temp.length是否大于你要放入的下一个数字string的length,如果是的话就放进这个temp,否则就print,进入下一行的输出。每个temp之间用vbcrlf(回车换行转义符)
#4
vs2012中的label没有VB6中label的backstyle和background属性,有一个backcolor属性,但不管怎样设置,即使设置成transparent,在进度条过去之后还是一个不透明的框,出不来那种透明的效果。
原来想这样输出,但觉得麻烦,有没有更好的方法输出呢?
原来想这样输出,但觉得麻烦,有没有更好的方法输出呢?
#5
我去试试看。实在不行的话不要用win32窗体了换wpf的话就没这种问题了,而且各种效果很好做
#6
谢谢啊,采纳你的建议,以后用WPF
#7
的确设置成transparent也无效
1.我也不知道怎么解决了...要么换WPF用textblock。虽然WPF比win32好很多很多但是我估计你看到那个设计器和xaml要吓一跳...
2.就我知道的而言,只能这样输出,其实也不麻烦
dim temp as string
for each num as integer in numberArray
if MaxLength- temp.length>num.tostring.length then
temp+=num.tostring
else
print(temp)
temp=num.tostring
end if
next
差不多这样,很短的
#8
或者你可以这样,win32窗体调用WPF的控件,你可以网上找找,用textblock应该是可以的
#9
刚试了一下,label说不支持透明背景色,textbox也不支持,正常方法应该是不行了。不嫌麻烦可以GDI自己画上去..
#1
1.我不明白你label都透明了,那字怎么分辨出来
2.你一行放一个数字不行吗。不太明白什么意思,你要做成什么样
2.你一行放一个数字不行吗。不太明白什么意思,你要做成什么样
#2
我想要的结果是只显示label上的数字,因为label在进度条经过的地方,效果就象那只有一个显示进度百分比的数字,不影响背景颜色的变化。
要输出几百个数字,一行可以有一二十个呢,要一行放一个就不现实了,想要的是每行都能输出满,但又不能把两个数字间的空格赶到行首
要输出几百个数字,一行可以有一二十个呢,要一行放一个就不现实了,想要的是每行都能输出满,但又不能把两个数字间的空格赶到行首
#3
哦明白了,你要label的background是透明的是吧,你可以找一下label有没有属性叫background或者background color的属性,而且我记得label是默认背景色透明的
对于数字的话你就是要一行尽可能放满数字但是不换行是吧。那可以这样,先把所有数字都转换成string,确定一行可以容纳的最大字符数量,声明一个暂时储存一行输出的字符串比如叫temp,每次判断一行的最大字符数量减去temp.length是否大于你要放入的下一个数字string的length,如果是的话就放进这个temp,否则就print,进入下一行的输出。每个temp之间用vbcrlf(回车换行转义符)
#4
vs2012中的label没有VB6中label的backstyle和background属性,有一个backcolor属性,但不管怎样设置,即使设置成transparent,在进度条过去之后还是一个不透明的框,出不来那种透明的效果。
原来想这样输出,但觉得麻烦,有没有更好的方法输出呢?
原来想这样输出,但觉得麻烦,有没有更好的方法输出呢?
#5
我去试试看。实在不行的话不要用win32窗体了换wpf的话就没这种问题了,而且各种效果很好做
#6
谢谢啊,采纳你的建议,以后用WPF
#7
的确设置成transparent也无效
1.我也不知道怎么解决了...要么换WPF用textblock。虽然WPF比win32好很多很多但是我估计你看到那个设计器和xaml要吓一跳...
2.就我知道的而言,只能这样输出,其实也不麻烦
dim temp as string
for each num as integer in numberArray
if MaxLength- temp.length>num.tostring.length then
temp+=num.tostring
else
print(temp)
temp=num.tostring
end if
next
差不多这样,很短的
#8
或者你可以这样,win32窗体调用WPF的控件,你可以网上找找,用textblock应该是可以的
#9
刚试了一下,label说不支持透明背景色,textbox也不支持,正常方法应该是不行了。不嫌麻烦可以GDI自己画上去..