2017-07-18 107 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