在开发程序时,为了让用户熟悉操作,经常使用一些提示框,显示提示信息。默认情况下,提示信息框只包含提示信息,未免有些单调,如果在提示信息框中显示一个图标,程序或许就别具风格了。本实例实现了在提示框中添加图标的功能。
技术要点
要修改提示信息框的风格,首先需要了解C#中提示信息框的设计原理。在C#中,提示信息框是用ToolTip控件来实现的。ToolTip控件的ToolTipIcon属性可以设置提示时显示的图片,下面详细介绍一下该属性。
ToolTip.ToolTipIcon属性用来获取或设置一个值,该值定义要在工具提示文本旁显示的图标的类型。
属性值:System.Windows.Forms.ToolTipIcon枚举值之一。
实现过程
(1)创建一个项目,默认窗体为Form1。
(2)在Form1窗口中添加3个Label控件,用来显示文字。
(3)在窗体上添加ToolTip控件用来显示提示内容和提示样式。
(4)主要程序代码。
.
private void Form1_Load(object sender, EventArgs e)
{
toolTip1.SetToolTip(label1,"人生格言");
toolTip1.SetToolTip(label2, "人生格言");
}
{
toolTip1.SetToolTip(label1,"人生格言");
toolTip1.SetToolTip(label2, "人生格言");
}
总结:
根据本实例,可以实现以下功能。
1、自定义提示信息框。
2、制作气泡样式提示信息框。
二、修改提示字体及颜色
如果设置了控件的ToolTip属性,当鼠标移到该控件后,会提示相关的文本,但没有提供对提示字体及颜色的设置属性,如何改变提示文本的样式和字体呢?本例可以设置提示文本的字体及颜色。
技术要点
C# 中提供了ToolTip控件,可以指定关联控件并为每个控件提供提示文本,其中ToolTipTitle属性指定文本提示盒中的文本。下面介绍相关的属性和方法。
(1)SetToolTip方法
使工具提示文本与指定的控件相关联。其语法结构如下:
public void SetToolTip (Control control,string caption)
参数说明如下:
control:要将工具提示文本与其关联的Control。
caption:指针位于控件上方时要显示的工具提示文本。
(2)ToolTip.ToolTipTitle属性
获取或设置工具提示窗口的标题。其语法结构如下:
public string ToolTipTitle { get; set; }
属性值:包含窗口标题的String。该标题在窗口中作为一行粗体文本显示在标准的工具提示控件说明文本的上方。通常,标题只用于区分窗体上不同类别的控件,或作为较长控件说明的简介。
实现过程
(1)创建一个项目,默认窗体为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);
}
{
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);
}
}
}
{
// 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);
}
}
}
总结:
根据本实例,可以实现以下功能。
1、修改任意控件提示文本的样式。
2、提示时加提示的声音。