注册 登录
编程论坛 VB6论坛

求助,如何改变label的边框颜色?

liang008 发布于 2018-07-18 15:17, 6106 次点击
默认只有黑色的,我想改变成红色或是其他颜色,我该怎么做?求大神帮忙
15 回复
#2
liang0082018-07-18 15:26
有用过Shape + 无边框label 来实现,但是实际使用时遇到了问题,
显示内容需在label有边框的时候才能完全显示并且打印完整,
设置成无边框时最右边字体会部分打印不出来,有没有办法能让label显示边框并且能改变他的颜色?
#3
liang0082018-07-18 15:33
网上查找了一下午,有人建议重绘,具体重绘该怎么操作,本人对这方面完全小白,有没有大神能提供点重绘控件的例子代码供参考一下呀,完全没有头绪,不知从何下手
#4
风吹过b2018-07-18 16:46
VB6 ,自己使用绘图命令画框子吧!

能不使用控件时,建议少用控件。

#5
wds12018-07-18 21:36
如果控件较少,可以用画框的方式实现更简单一些。
对于框的宽度也可以定义。
Private Sub Command1_Click()
 Form1.Line (Label1.Left, Label1.Top)-(Label1.Left + Label1.Width, Label1.Top + Label1.Height), vbRed, B
End Sub
#6
liang0082018-07-19 09:14
先谢谢大家的热心帮助
可能我没把问题描述清楚,具体是这样的
我把字符串显示在label上然后打印窗体,字体要求是不需要边框的,我把label边框设置为无边框时能正常打印字符串较短的情况,当字符串长度刚好靠近右边而又没发生换行时,打印出来就会导致最后一个字符只显示一半;
这个问题把label设置成有边框是可以解决,但是打印时我又不需要边框,所以就想着把他变成白色,大概问题就是这样,纠结了我好久
#7
liang0082018-07-19 09:19
回复 4楼 风吹过b
版主大大对我这个问题有没有更好的办法呀?

试过用Shape line 挡住label的边框,但是在不同系统电脑上又会出现位置变化没有完全档住的情况

#8
wds12018-07-19 16:30
如下设置看看
Label1.AutoSize = True


#9
liang0082018-07-20 08:42
回复 8楼 wds1
太感谢啦,完美解决了这个问题!
#10
liang0082018-07-20 08:48
回复 8楼 wds1
问题还是没得到彻底解决,这个变长的label在我这里不适用,要求是定长的
#11
wmf20142018-07-20 09:25
回复 6楼 liang008
不知道你是如何用有边框的形式解决半个字符问题的,我反复试验结果是:无论是否有边框,label控件对超出显示范围的英文字符都有显示半个的可能。
如果非要定宽label,解决办法有两个:一是将字符串里所有的英文字符转换为对应的中文字符,这样可以自动换行显示,第二种方法是计算当前字符显示宽度,对超出显示宽度的加换行符,自动到下一行显示。
#12
liang0082018-07-20 09:43
回复 11楼 wmf2014
我把label设置为有边框时,没有发生显示半个字符的情况,因为我打印的是窗体(使用有边框时窗体显示什么就能打印出什么,但是无边框时窗体看上去是显示了全部字符,实际打出来却少了半个字符)
这里我想请教一下有没有办法得到label是否发生了换行?
如果能得到label发生了自动换行,结合8楼的办法就能解决这个问题
大概是这样 如果换行了Label1.AutoSize = false,否则 Label1.AutoSize = true
#13
liang0082018-07-20 09:51
回复 11楼 wmf2014
我遇到的问题是字符串长度刚好靠近label边界却没有发生换行时出现的;当字符串足够长发生自动换行后就不会出现这个问题
#14
liang0082018-07-20 10:02
只有本站会员才能查看附件,请 登录


上图第一行为 Label1.AutoSize = true 打出来的效果

第二行为 Label1.AutoSize = false 打出来的效果

Label1的字符串是变化的,有可能会发生换行,换行后打出来都是OK的,只有像第二行这种情况才会出现
#15
wds12018-07-20 12:24

那你就计算字体大小和label1.width关系,预留半个字体位置,通过设置字体大小解决。

#16
liang0082018-07-20 14:21
回复 15楼 wds1
要求的字体是固定,没办法改变,现在已经换成TextBox替换了label,但是TextBox打印出来的字体与label的有点区别,只能先将就使用了,再次谢谢大家的热心帮助!
1