基于.NET的Windows窗体编程之WinForms提示控件
在实际应用开发中有时候为了美观或者节约UI空间经常见到有些控件只有图标没有文字说明当用户鼠标放在图标控件上时才显示相应的文本提示Tips或者当需要时才显示的一种控件今天以一些简单的小例子简述在基于.NET的Windows窗体编程之WinForms中提示控件的常见用法仅供学习分享使用如有不足之处还请指正。概述在WinForms开发框架中常见的提示控件主要有以下几种ToolTip用于在用户鼠标指向控件时显示文本它可以与任何控件相关联。NotifyIcon在任务栏的状态通知区域中显示后台运行并且没有用户界面的进程图标。ErrorProvider用于以非干扰性的方式向用户显示错误通常与验证窗体上的用户输入或显示数据集中的错误结合使用。ToolTipToolTip用于在用户鼠标指向控件时显示文本它可以与任何控件相关联且可以同时为多个控件进行工具提示。ToolTip关键属性如下所示AutoPopDelay确定当鼠标在工具提示区域保持静止时工具提示窗口保持可见的时间长度。InitialDelay 属性确定用户必须指向关联控件多长时间才能显示 ToolTip 字符串。ReshowDelay 属性设置当鼠标从一个 ToolTip 关联控件移动到另一个关联控件时随后 ToolTip 字符串出现所需的时间毫秒。AutomaticDelay它是一个综合属性可以自动的将上述三个属性值合理分配时间。例如当 AutomaticDelay 设置为值 N 时InitialDelay 设置为 NReshowDelay 设置为 AutomaticDelay 除以 5或 N/5的值AutoPopDelay 设置为 AutomaticDelay 属性或 5N的值五倍的值。IsBalloon指定ToolTip是否以气球的形式出现默认为false。ShowAlways是否一直显示工具提示即使控件不处于激活状态时默认为false。ToolTipIcon工具提示的图标它有四个选项NoneInfoWarningError。ToolTipTitle用于设置获/取工具提示的标题。UseAnimation提示框显示或隐藏时是否使用动画。UseFading提示框显示或隐藏时是否使用淡入淡出的效果。首先拖动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.); }运行实例效果如下所示NotifyIconNotifyIcon组件在任务栏的状态通知区域中显示后台运行并且没有用户界面的进程图标并且大部分时间都不会显示用户界面。 例如可以通过单击任务栏的状态通知区域中的图标来访问病毒防护程序。每个 NotifyIcon 组件在状态区域中显示一个图标。 如果你有三个后台进程并且希望为每个进程显示一个图标则必须向窗体添加三个 NotifyIcon 组件。 NotifyIcon 组件的关键属性主要有以下几个Icon 属性设置显示在状态区域中的图标。Visible 表示控件是否显示若要显示图标必须将Visible设置为true。BalloonTipText表示气球状提示关联的文本BalloonTipIcon表示气球状提示关联的图标BalloonTipTitle表示气球状提示关联的标题NotifyIcon的关键事件DoubleClick 事件处理程序中编写代码以便在用户双击图标时发生某种情况。首先拖动NotifyIcon控件到Form表单中然后设置NotifyIcon的相关属性如IconVisible等如下所示在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; }运行示例效果如下所示ErrorProviderErrorProvider组件用于以非干扰性的方式向用户显示错误。 它通常与验证窗体上的用户输入或显示数据集中的错误结合使用。错误提供程序比在消息框中显示错误消息更好因为一旦消除消息框错误消息将不再可见。 该 ErrorProvider 组件在相关控件旁边显示错误图标例如文本框;当用户将鼠标指针放在错误图标上时将显示一个工具提示显示错误消息字符串。ErrorProvider组件的关键属性主要有以下几个ContainerControl 表示组件的父控件通常是 Windows 窗体以便组件在窗体上显示错误图标。Icon表示错误提示图标可以设置为自定义错误图标而不是默认值。DataSource表示绑定错误的数据源。首先拖动ErrorProvider控件到Form表单中默认ContainerControl属性会自动设置为当前Form表单Icon也有默认红色图标如下所示在Form表单上拖动两个文本框控件分别为txtNametxtAge用于属性姓名和年龄然后分别设置控件的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.Length5) { errorProvider1.SetError(txtName, ); } else { errorProvider1.SetError(txtName, 请输入长度为[2,4]的字符数); } }运行示例效果如下所示以上就是《基于.NET的Windows窗体编程之WinForms提示控件》的全部内容旨在抛砖引玉一起学习共同进步