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

当画面上的空间有限时,我们可能无法将控件中的文字完整显示出来,当遭逢此种状况时,我们通常会在控件中显示出省略符号来表示尚有文字未显示出来。为了协助您制作出此类的效果,.NET Framework 2.0特别替LabelButtonBase类别新增了AutoEllipsis属性,您只需将AutoEllipsis属性设定成True,并且将AutoSize属性设定成False,即可在有限宽度下所显示之部分文字的尾端显示出省略符号。

 

再次提醒您,Label控件与衍生自ButtonBase类别的控件(也就是ButtonCheckBoxRadioButton等三种控件)都拥有AutoEllipsis属性。另外还要叮咛大家的,就是 .NET Framework 2.0已替Control类别新增了AutoSize属性,因此LabelButtonCheckBoxRadioButton等四种控件当然都拥有AutoSize属性。

 

图表1

 

 

图表2

 

图表12所示者是我们所撰写之程序范例的执行画面,显而易见地,我们将大小不足以完整显示出文字之LabelButton控件的AutoEllipsis属性设定成True,并且将AutoSize属性设定成False,以便使其显示出省略符号。此外正如图表12所示,我们替控件的MouseEnterMouseLeave事件撰写下列的事件处理例程,以便使得当鼠标指针移入控件的上方时就完整显示出文字,当鼠标指针移出控件时又会缩回原来的大小:

 

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

 

其实有一点是非常值得玩味的。事实上您并不见得要如上述作法一样替已加上省略符号的控件撰写MouseEnterMouseLeave事件,毕竟之所以要将AutoEllipsis属性设定成True来显示出省略符号的目的就是因为画面空间不足。请大家特别注意图表3,我们并未替此一Label控件额外撰写动态完整显示文字的事件处理例程,而只是单纯地让其显示出省略符号,在这种情况下,当您将鼠标指针移至其上方时,它所内含的完整文字将会自动以工具提示文字的方式显示出来。您说AutoEllipsis属性是不是很好用呢。

 

图表3

 

本文节录自Visual Basic 2005程序开发与界面设计秘诀一书,特此声明之。Visual C# 2005的用户请参阅Visual C# 2005程序开发与界面设计秘诀一书。

posted on 2007-01-08 18:29  章立民研究室  阅读(1067)  评论(0编辑  收藏  举报

导航