实例说明
如果设置了控件的ToolTip属性,当鼠标移到该控件后,会提示相关的文本,但没有提供对提示字体及颜色的设置属性,如何改变提示文本的样式和字体呢?本例可以设置提示文本的字体及颜色。运行本例,效果如图1.47所示。
技术要点
C# 2.0中提供了ToolTip控件,可以指定关联控件并为每个控件提供提示文本,其中ToolTipTitle属性指定文本提示盒中的文本。下面介绍相关的属性和方法。
(1)SetToolTip方法
使工具提示文本与指定的控件相关联。其语法结构如下:
public void SetToolTip (Control control,string caption)
参数说明如下。
l control:要将工具提示文本与其关联的Control。
l caption:指针位于控件上方时要显示的工具提示文本。
(2)ToolTip.ToolTipTitle属性
获取或设置工具提示窗口的标题。其语法结构如下:
public string ToolTipTitle { get; set; }
l 属性值:包含窗口标题的String。该标题在窗口中作为一行粗体文本显示在标准的工具提示控件说明文本的上方。通常,标题只用于区分窗体上不同类别的控件,或作为较长控件说明的简介。
实现过程
(1)创建一个项目,将其命名为Ex01_46,默认窗体为Form1。
(2)在Form1窗体上添加Button控件用来在其上方显示提示文本;添加ToolTip控件用来设计提示文本。
(3)主要程序代码。
设置提示文本,及提示文本的关联控件,具体代码如下:
private void Form1_Load(object sender, EventArgs e)
{
this.toolTip1.OwnerDraw = true;
this.toolTip1.SetToolTip(this.button1,"设置提示的字体及颜色");
this.toolTip1.Draw += new DrawToolTipEventHandler(toolTip1_Draw);
}
设置文本的提示样式,具体代码如下:
void toolTip1_Draw(object sender, DrawToolTipEventArgs e)
{
// throw new Exception("The method or operation is not implemented.");
e.DrawBackground( );
e.DrawBorder( );
using (StringFormat sf = new StringFormat( ))
{
sf.Alignment = StringAlignment.Center;
sf.LineAlignment = StringAlignment.Center;
sf.HotkeyPrefix = System.Drawing.Text.HotkeyPrefix.None;
sf.FormatFlags = StringFormatFlags.NoWrap;
using (Font f = new Font("宋体", 12))
{
e.Graphics.DrawString(e.ToolTipText, f,
SystemBrushes.ActiveCaptionText, e.Bounds, sf);
}
}
}
举一反三
根据本实例,读者可以实现以下功能。
修改任意控件提示文本的样式。
提示时加提示的声音。