如何使用Windows窗体在按钮上显示工具提示?
当前回答
对于默认的工具提示,可以使用-
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");
如果需要对工具提示消息进行格式化,也可以使用定制的工具提示。这可以通过自定义格式化表单来创建,并将其用作控件的鼠标悬停事件的工具提示对话框。详情请查看以下链接-
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
其他回答
在Tag属性中存储文本的惰性和紧凑性
如果你有点懒,不使用标签属性的控件的任何其他东西,你可以使用它来存储工具提示文本,并分配MouseHover事件处理程序到所有这样的控件,就像这样:
private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
ToolTip1 = new System.Windows.Forms.ToolTip();
foreach(Control ctrl in this.Controls)
{
if (ctrl is Button && ctrl.Tag is string)
{
ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
{
var btn = (Control)o;
ToolTip1.SetToolTip(btn, btn.Tag.ToString());
});
}
}
}
在这种情况下,所有在Tag属性中有字符串的按钮都会被分配一个MouseHover事件。为了保持紧凑,MouseHover事件使用lambda表达式内联定义。在事件中,任何按钮悬停将其标签文本分配给工具提示并显示。
当然,只需处理鼠标悬停事件并告诉它显示工具提示。 T是一个在全局函数中定义的工具提示,或者在构造函数中使用:
ToolTip t = new ToolTip();
然后是事件处理程序:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}
您可以使用ToolTip类:
为控件创建工具提示
例子:
private void Form1_Load(object sender, System.EventArgs e)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.Button1, "Hello");
}
. net框架提供了ToolTip类。将其中的一个添加到您的表单中,然后在鼠标悬停事件中为您想要工具提示的每个项执行如下操作:
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
ToolTip是一个WinForms控件,用于在单个表单中显示多个元素的工具提示。
假设你的按钮叫MyButton。
添加一个工具提示控件(在普通 控件 工具箱)到您的窗体。 给它一个 名称-说MyToolTip 设置MyButton的“Tooltip on MyToolTip”属性(在Misc下) 按钮属性网格)到鼠标悬停在其上时应该出现的文本。
当光标悬停在按钮上时,工具提示将自动出现,但如果需要以编程方式显示它,请调用
MyToolTip.Show("Tooltip text goes here", MyButton);
在代码中显示工具提示,和
MyToolTip.Hide(MyButton);
让它再次消失。
推荐文章
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- AppSettings从.config文件中获取值
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 没有ListBox。SelectionMode="None",是否有其他方法禁用列表框中的选择?
- 在c#代码中设置WPF文本框的背景颜色
- 如何在iis7应用程序池中设置。net Framework 4.5版本
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 如何指定最小值,但没有使用范围数据注释属性的最大小数?
- 如何在PowerShell中获得本地主机名?
- 为什么在Java和。net中不能修改字符串?
- 'throw'和'throw new Exception()'的区别
- c# int到字节[]
- 如何跟踪log4net问题