

























在实际应用开发中,有时候为了美观或者节约UI空间,经常见到有些控件只有图标,没有文字说明,当用户鼠标放在图标控件上时,才显示相应的文本提示(Tips),或者当需要时才显示的一种控件,今天以一些简单的小例子,简述在基于.NET的Windows窗体编程之WinForms中提示控件的常见用法,仅供学习分享使用,如有不足之处,还请指正。

在WinForms开发框架中,常见的提示控件主要有以下几种:
ToolTip用于在用户鼠标指向控件时显示文本,它可以与任何控件相关联,且可以同时为多个控件进行工具提示。ToolTip关键属性如下所示:
首先拖动ToolTip控件到Form表单中,由于ToolTip组件默认不显示在页面中,默认不会在Form表单上显示,而是显示在组件托盘中,如下所示:

在选中Form表单的其他控件时,在控件的属性对话框中,就是多出一个属性“ToolTip on toolTip1”,在属性框中输入提示的文本,如下所示:

运行示例,效果如下所示:

也可以在后台代码中设置控件的ToolTip,如在Form的Load事件中,设置按钮的工具提示,如下所示:
private void FrmTips_Load(object sender, EventArgs e)
{
this.toolTip1.SetToolTip(this.btnOpen, "Please click it to open the file dialog.");
}
运行实例,效果如下所示:

NotifyIcon组件在任务栏的状态通知区域中显示后台运行并且没有用户界面的进程图标,并且大部分时间都不会显示用户界面。 例如,可以通过单击任务栏的状态通知区域中的图标来访问病毒防护程序。每个 NotifyIcon 组件在状态区域中显示一个图标。 如果你有三个后台进程并且希望为每个进程显示一个图标,则必须向窗体添加三个 NotifyIcon 组件。 NotifyIcon 组件的关键属性,主要有以下几个:
NotifyIcon的关键事件:
首先拖动NotifyIcon控件到Form表单中,然后设置NotifyIcon的相关属性(如Icon,Visible)等,如下所示:

在Form的大小变化时,当Form最小化时,调用NotifyIcon的ShowBallonTip方法,显示提示,如下所示:
private void FrmTips_SizeChanged(object sender, EventArgs e)
{
if (WindowState == FormWindowState.Minimized)
{
this.notifyIcon1.ShowBalloonTip(30000, "Tips", "这是一个提示", ToolTipIcon.Info);
}
}
为NotifyIcon注册Click事件,当点击时触发响应,如下所示:

Click事件的内容如下所示:
private void notifyIcon1_Click(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Normal;
}
运行示例,效果如下所示:

ErrorProvider组件用于以非干扰性的方式向用户显示错误。 它通常与验证窗体上的用户输入或显示数据集中的错误结合使用。错误提供程序比在消息框中显示错误消息更好,因为一旦消除消息框,错误消息将不再可见。 该 ErrorProvider 组件在相关控件旁边显示错误图标(
例如文本框;当用户将鼠标指针放在错误图标上时,将显示一个工具提示,显示错误消息字符串。ErrorProvider组件的关键属性主要有以下几个:
首先拖动ErrorProvider控件到Form表单中,默认ContainerControl属性会自动设置为当前Form表单,Icon也有默认红色图标,如下所示:

在Form表单上拖动两个文本框控件,分别为txtName,txtAge,用于属性姓名和年龄,然后分别设置控件的Validating事件,用于验证用户属性的数据是否有效,如下所示:

在验证事件中自定义验证逻辑,如输入不合法时,则通过设置ErrorProvider的SetError方法进行设置信息,如下所示:
private void txtAge_Validating(object sender, CancelEventArgs e)
{
try
{
int x = Int32.Parse(txtAge.Text);
errorProvider1.SetError(txtAge, "");
}
catch
{
errorProvider1.SetError(txtAge, "请输入一个数字.");
}
}
private void txtName_Validating(object sender, CancelEventArgs e)
{
if( this.txtName.Text.Length > 1&& this.txtName.Text.Length<5)
{
errorProvider1.SetError(txtName, "");
}
else
{
errorProvider1.SetError(txtName, "请输入长度为[2,4]的字符数");
}
}
运行示例,效果如下所示:

以上就是《基于.NET的Windows窗体编程之WinForms提示控件》的全部内容,旨在抛砖引玉,一起学习,共同进步!!!
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。