单独介绍它的变化,是因为在Win7及之前的系统中,该方法显示提示为气球状的提示框,基本效果如下:
但是在Win10,气球状的提示框已经该系统本地的toast通知效果取代,也就是,使用NotifyIcon的ShowBalloonTip方法,将会显示系统本地通知,具体效果如下:
新建项目NotificationTrayToolTip,添加两个按钮,一个显示,一个关闭,以及一个名为notifyIcon的NotifyIcon控件(初始可见性设置为false:notifyIcon.Visible=false;)。
设计器中为notifyIcon的Icon属性指定一个图标文件。
显示气泡提示按钮的点击事件中,设置notifyIcon可见,并执行ShowBalloonTip()方法,其第二个参数为标题,第三个参数为消息内容,最后一个为消息类型。
关闭消息提示按钮的点击事件代码中,设置Visible=false关闭系统提示:
通过属性也可以指定消息内容、标题、类型等:
notifyIcon.BalloonTipIcon=ToolTipIcon.Warning;notifyIcon.BalloonTipText="测试";notifyIcon.BalloonTipTitle="标题";notifyIcon.ShowBalloonTip(0);BalloonTipIcon不同的消息类型ToolTipIcon消息类型图标的取值有四种,和方法中的对应:
Winform中许多控件都提供有ToolTipText属性,用于设置提示消息,用于在鼠标位于控件上方(悬停)时,显示提示语。
通常都是容器控件的子控件项有这个属性,用于提示不同的子项信息。
一般在设置子项控件的ToolTipText后,要想使提示生效,还需要设置父容器控件的ShowItemToolTips为true(DataGridView为ShowCellToolTips属性)。
如下,ToolStrip、MenuStrip1、ListView、DataGridView、TabControl等几种控件启用tip提示,并为子项设置不同的提示信息。
//必须设置ShowToolTips为true,当鼠标位于tab时显示提示tabControl1.ShowToolTips=true;tabPage1.ToolTipText="你好,我是tab提示";dataGridView1.ShowCellToolTips=true;dataGridView1[0,0].ToolTipText="单元格的tip";toolStrip1.ShowItemToolTips=true;toolStripLabel1.AutoToolTip=true;toolStripLabel1.ToolTipText="toolStrip1子项的提示";menuStrip1.ShowItemToolTips=true;menuStrip按钮ToolStripMenuItem.AutoToolTip=true;menuStrip按钮ToolStripMenuItem.ToolTipText="menuStrip1子项的提示";listView1.ShowItemToolTips=true;listView1.Items[0].ToolTipText="我是listViewItem的提示";接本效果如下:
但默认提供的提示文本的显示,并不及时,并且,如果窗体不是焦点窗体,这些提示也都是无效的(而有的子项,如果是激活状态,tip也会无效)
通过ToolTip控件可以设置在哪个控件上显示什么提示信息,以及通过事件触发的方式(比如hover、鼠标进入、键盘按键),显式的或多种条件下,展示提示框。
ToolTip.SetToolTip(Controlcontrol,Stringcaption)方法为指定control控件设置caption提示消息。
并且,一个ToolTip可以应用多个控件。
toolTip.SetToolTip(button1,"我是按钮1提示");toolTip.SetToolTip(radioButton1,"单选提示,必需选择");toolTip.SetToolTip(buttonPro1,"使用ToolTip的提示");显式设置ToolTip根据需要在事件中显式的进行提示:
button1.MouseEnter+=Button1_MouseEnter;//...privatevoidButton1_MouseEnter(objectsender,EventArgse){toolTip.SetToolTip(button1,"鼠标进入提示");}注:消息提示是跟随鼠标的,如果鼠标未在控件位置上方,提示也不会显示出来。