2011-11-22 65 views
11

我有一個出現在鼠標懸停時的圖像的工具提示:C#提示不顯示足夠長的

ToolTip tt = new ToolTip(); 
protected virtual void pictureBox_MouseHover(object sender, EventArgs e) 
{ 
    tt.InitialDelay = 0; 
    tt.SetToolTip(this.pictureBox, "Click 'LIVE ..."); 
} 

我的問題是,我的文字比較長,和工具提示消失得太快。我怎樣才能讓工具提示長時間顯示?

回答

16

設置 AutoPopDelay property要的東西更高 - 它默認爲5000(5秒)

更新:我的錯誤:

可以延遲一個彈出的最大時間爲5000毫秒。對於更長的持續時間,使用Show方法來控制顯示工具提示的確切時刻。

因此,您無法使用此方法將工具提示顯示超過5秒 - 相反,當用戶將鼠標懸停在圖片框上時,您需要使用顯示來明確顯示工具提示。只是一個在你MouseHover事件處理程序更換您的來電SetToolTipShow

ToolTip tt = new ToolTip(); 
protected virtual void pictureBox_MouseHover(object sender, EventArgs e) 
{ 
    tt.Show("Click 'LIVE ...", this.pictureBox, 10000); 
} 
+0

想到了同一個。或者只是嘗試將'ShowAlways'設置爲'true'作爲解決方法。 –

+0

+1很好的直接答案,並列出默認值是什麼。 – aevanko

+9

@Justin--原來,儘管有文檔,但沒有什麼能阻止你設置更長的延遲,而且它確實有效。我將它設置爲20,000毫秒,並保持了很長時間。 [使用.NET 3.5]名爲「Panny」的StackOverflow用戶發現,可以設置的最大延遲時間爲32,767毫秒,這是由於16位signed int問題以及諸如此類所致。 – ManEatingCheese

2

設置AutoPopDelay屬性的值

tt.AutoPopDelay = 10000; 
2

ToolTip.Show(text, [control], time in milliseconds)what you need我認爲

這將讓你顯示您的長文本爲特定的毫秒數。此外,如果你的文字太長,那麼你可以惰性NewLine之間的文字,以便其包裝和不顯示爲一個長工具提示橫跨形式

2

不像賈斯汀所描述的答案,我無法得到工具提示使用show方法顯示超過5秒的時間。

我遇到的其中一個掛機是AutomaticDelay屬性。長話短說 - 如果你想定製AutoPopDelay不是AutomaticDelay

設置該屬性將自動集... see MSDN

AutoPopDelay = 10×AutomaticDelay

在initialDelay = AutomaticDelay

ReshowDelay =(0。2)×AutomaticDelay

這裏的代碼爲我工作:

ToolTip tt = new ToolTip(); 
private void someObjectName_MouseHover(object sender, EventArgs e) { 
    tt = new ToolTip 
    { 
     AutoPopDelay = 15000, // Warning! MSDN states this is Int32, but anything over 32767 will fail. 
     ShowAlways = true, 
     ToolTipTitle = "Symbolic Name", 
     InitialDelay = 200, 
     ReshowDelay = 200, 
     UseAnimation = true 
    }; 
    tt.SetToolTip(this.someObjectName, "This is a long message"); 
} 

獎勵:

private void someObjectName_MouseLeave(object sender, EventArgs e) 
    { 
     tt.Active = false; 
    }