2011-11-22 8 views
11

मैं एक टूलटिप जाता है कि एक छवि पर माउस मंडराना पर दिखाई दे रहा है। टूल टिप को लंबे समय तक प्रदर्शित करने के लिए मैं कैसे प्राप्त कर सकता हूं?सी # टूलटिप प्रदर्शित नहीं करता है काफी देर तक

उत्तर

16

सेट AutoPopDelay property कुछ अधिक होने की - (5 सेकंड) यह 5000 के लिए चूक

अद्यतन: मेरे गलती:

अधिकतम बार जब आप एक पॉपअप देरी कर सकते हैं 5000 मिलीसेकंड है । लंबी अवधि के लिए, टूलटिप प्रदर्शित होने पर सटीक पल को नियंत्रित करने के लिए शो विधि का उपयोग करें।

तो आप इस विधि का उपयोग करके 5 सेकंड से अधिक समय तक टूल टिप प्रदर्शित नहीं कर सकते हैं - इसके बजाय आपको चित्र का उपयोग करने पर टूल टिप को स्पष्ट रूप से दिखाने के लिए शो का उपयोग करने की आवश्यकता है। बस अपने कॉल अपने MouseHover ईवेंट हैंडलर में Show करने के लिए एक साथ SetToolTip को बदल देते हैं:

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

उसी बारे में सोचा। या सिर्फ 'शोअल्वे' को 'सत्य' पर वर्कअराउंड के रूप में सेट करने का प्रयास करें। –

+0

+1 अच्छा सीधा जवाब और लिस्टिंग क्या डिफ़ॉल्ट मान है के लिए। – aevanko

+9

@Justin -, बाहर कर देता है प्रलेखन के बावजूद, एक लंबे समय तक देरी सेट करने से आप को रोकने के लिए कुछ भी नहीं है, और यह काम करता है। मैंने इसे 20,000 मिलीसेकंड तक सेट किया और यह उस लंबे समय तक रहा। "Panny" के नाम से एक StackOverflow उपयोगकर्ता [.NET 3.5 का उपयोग करना] ने पाया कि अधिकतम देरी एक सेट कर सकते हैं 32,767 मिलीसेकंड है, जो कारण है 16-बिट पर हस्ताक्षर किए है पूर्णांक समस्याओं और इस तरह के और इस तरह के। – ManEatingCheese

2

AutoPopDelay संपत्ति का मूल्य निर्धारित करें

tt.AutoPopDelay = 10000; 
2

ToolTip.Show(text, [control], time in milliseconds)what you need है मुझे लगता है कि

यह आप प्रदर्शित करने देगा मिलीसेकंड की एक विशिष्ट संख्या के लिए आपका लंबा पाठ। इसके अलावा यदि आप टेक्स्ट बहुत लंबा है तो आप टेक्स्ट के बीच NewLine डाल सकते हैं ताकि इसकी रैप हो गई हो और फॉर्म

2

जस्टिन द्वारा वर्णित उत्तर के विपरीत, मैं इसे प्राप्त करने में सक्षम नहीं था show विधि का उपयोग कर 5 सेकंड से अधिक समय तक प्रदर्शित करने के लिए टूलटिप।

मेरे पास मौजूद अन्य हैंगअप में से एक AutomaticDelay संपत्ति थी। लंबी कहानी छोटी - यदि आप कस्टम AutoPopDelayAutomaticDelay सेट करना चाहते हैं।

इस गुण को सेट होगा स्वचालित रूप से सेट ... see MSDN:

AutoPopDelay = 10 x AutomaticDelay

InitialDelay = AutomaticDelay

ReshowDelay = (0।2) x 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; 
    } 
0

मैंने पाया निम्नलिखित चरणों का मेरे लिए काम:

सेट अपने वांछित की 1/10 के

तो फिर आप अपने और अपने बाद में समायोजित कर सकते हैं।

MSDN Link

संबंधित मुद्दे