2017-07-18 102 views
0

背景:我正在制作桌面C#Windows窗体应用程序。我想要永久显示气球工具提示,如图所示。如何在Windows Form C#中自定义标签,如气球工具提示?

This is what I want to Achieve.

尝试:我曾尝试定制tooltip.My代码如下,

ToolTip customToolTip = new ToolTip(); 
     customToolTip.ToolTipTitle = "Button Tooltip"; 
     customToolTip.UseFading = true; 
     customToolTip.UseAnimation = true; 
     customToolTip.IsBalloon = true; 
     customToolTip.Active = true; 
     customToolTip.ShowAlways = true; 
     customToolTip.ShowAlways = true; 

问题与解决方案:问题是我要永久显示没有鼠标悬停和工具提示仅正值当鼠标将该控件悬停并在一段时间后消失。我已经阅读了StackOverflow,默认情况下它的工具提示特性会在一段时间后消失,他说他想要永久显示,请参阅标签。 我想做气球类型的工具提示,并希望显示永久显示鼠标悬停?

回答

0

如果要以编程方式触发工具提示,请使用ToolTip.Show Method。示例代码:

var tooltip = new ToolTip(); 
    tooltip.ToolTipTitle = "Tooltip title"; 
    tooltip.IsBalloon = true; 
    tooltip.Show("tooltip content", Target); 
+0

我在问题中提到,工具提示只配备鼠标时在控制上盘旋,我不想要它。我想永久显示而不用鼠标悬停。 – mohsin

+0

我想要实现与标签相同的功能,并希望在标签中显示气球图标/ – mohsin

+0

@mohsin您是否尝试过使用'BalloonTip' /'NotifyIcon'而不是'ToolTip' –

1

您可以使用NotifyIcon。例如:

方法1:

private void ShowBalloonTip(int min) 
{ 
    NotifyIcon notifyIcon = new NotifyIcon(); 
    notifyIcon.Visible = true; 
    notifyIcon.BalloonTipIcon = ToolTipIcon.Error; 
    notifyIcon.BalloonTipText = "Enter the text to be shown"; 
    notifyIcon.BalloonTipTitle = "Enter the Title"; 
    notifyIcon.ShowBalloonTip(min * 60 * 1000); // You can set your time value here 
} 

这将被示出(无鼠标悬停)只要提到的时间。如果鼠标悬停在它上面,它将自动被解散。

注意:一定时间(你作为min经过的时间)后,这将让驳回。所以传递一个小时左右的值。这会让它活得这么久!

如果莫名其妙的NotifyIcon没有显示出来,用

notifyIcon.Icon = SystemIcons.Application; 

方法2:

或者试试这个

var notify = new NotifyIcon(); 
notify.Visible = true; 
notify.Icon = System.Drawing.SystemIcons.Information; 
notify.ShowBalloonTip(3000, "Title", "TextBody", ToolTipIcon.Info) 
//3000 is in milliseconds 
+0

你给它分配了一个Icon吗?如果上述方式不起作用。用'notifyIcon.Icon = SystemIcons.Application;'替换'notifyIcon.BalloonTipIcon'' –

+0

我已经更新了我的答案,检查**方法2 **。复制相同的代码并首先检查。按照您的喜好替换'3000','Title','TextBody'。不要将时间设置为3或4,因为** ShowBalloonTip **需要**毫秒**作为_parameter_。所以_convert_你的持续时间到毫秒 –

+0

这是行得通的,但它显示在通知区域,我想在WindowsForm中显示在控件周围?我怎样才能做到这一点? – mohsin