Visual Basic 2005 - 如何替卷标与按钮控件加上省略符号

当画面上的空间有限时,我们可能无法将控件中的文字完整显示出来,当遭逢此种状况时,我们通常会在控件中显示出省略符号 来表示尚有文字未显示出来。为了协助您制作出此类的效果, .NET Framework 2.0 特别替 Label ButtonBase 类别新增了 AutoEllipsis 属性,您只需将 AutoEllipsis 属性设定成 True ,并且将 AutoSize 属性设定成 False ,即可在有限宽度下所显示之部分文字的尾端显示出省略符号。
 
再次提醒您, Label 控件与衍生自 ButtonBase 类别的控件(也就是 Button CheckBox RadioButton 等三种控件)都拥有 AutoEllipsis 属性。另外还要叮咛大家的,就是 .NET Framework 2.0 已替 Control 类别新增了 AutoSize 属性,因此 Label Button CheckBox RadioButton 等四种控件当然都拥有 AutoSize 属性。
                                    图表1
                                       图表2
图表 1 2 所示者是我们所撰写之程序范例的执行画面,显而易见地,我们将大小不足以完整显示出文字之 Label Button 控件的 AutoEllipsis 属性设定成 True ,并且将 AutoSize 属性设定成 False ,以便使其显示出省略符号。此外正如图表 1 2 所示,我们替控件的 MouseEnter MouseLeave 事件撰写下列的事件处理例程,以便使得当鼠标指针移入控件的上方时就完整显示出文字,当鼠标指针移出控件时又会缩回原来的大小:
 
Private Sub btnGo_MouseEnter(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles btnGo.MouseEnter
  btnGo.AutoSize = True
End Sub
Private Sub btnGo_MouseLeave(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles btnGo.MouseLeave
  btnGo.AutoSize = False
  btnGo.AutoEllipsis = True
End Sub
Private Sub lblAboutMe_MouseEnter(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles lblAboutMe.MouseEnter
  lblAboutMe.AutoSize = True
End Sub
Private Sub lblAboutMe_MouseLeave(ByVal sender As Object, _
  ByVal e As System.EventArgs) Handles lblAboutMe.MouseLeave
  lblAboutMe.AutoSize = False
End Sub
 
其实有一点是非常值得玩味的。事实上您并不见得要如上述作法一样替已加上省略符号的控件撰写 MouseEnter MouseLeave 事件,毕竟之所以要将 AutoEllipsis 属性设定成 True 来显示出省略符号的目的就是因为画面空间不足。请大家特别注意图表 3 ,我们并未替此一 Label 控件额外撰写动态完整显示文字的事件处理例程,而只是单纯地让其显示出省略符号,在这种情况下,当您将鼠标指针移至其上方时,它所内含的完整文字将会自动以工具提示文字的方式显示出来。您说 AutoEllipsis 属性是不是很好用呢。
                                       图表3
本文节录自 Visual Basic 2005程序开发与界面设计秘诀 一书,特此声明之。 Visual C# 2005 的用户请参阅 Visual C# 2005程序开发与界面设计秘诀 一书。

本文出自 “章立民” 博客,转载请与作者联系!

你可能感兴趣的:(basic,Visual,按钮控件,省略符号,卷标)