2009-08-27 15 views
130

मेरे पास कुछ नियंत्रण हैं जो माउस ToolTip प्रदर्शित करना चाहते हैं जब माउस उस पर होवर कर रहा हो। मैं यह कैसे कर सकता हूँ? मैं जानना चाहता हूं कि यह कोड में सही तरीके से कैसे करें, लेकिन डिजाइनर में भी (टूलबॉक्स में ToolTip घटक है, लेकिन मुझे काफी नहीं है .. इसे प्राप्त करें)।सी #: मैं नियंत्रण में टूलटिप कैसे जोड़ूं?

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

+0

([एक पाठ के माउस हॉवर पर प्रदर्शित टूलटिप] की संभावित डुप्लिकेट http://stackoverflow.com/questions/873175/displaying-tooltip-on-mouse-hover-of-a -text) –

+0

संबंधित, और पुराना अभी भी (सामान्य रूप से .NET पर लागू होता है): https://stackoverflow.com/questions/168550/display-a-tooltip-over-a-button-using-windows-forms –

उत्तर

168

Here आपके प्रपत्र पर टूलबॉक्स से एक टूलटिप नियंत्रण कोड

private void Form1_Load(object sender, System.EventArgs e) 
{ 
     // Create the ToolTip and associate with the Form container. 
     ToolTip toolTip1 = new ToolTip(); 

     // Set up the delays for the ToolTip. 
     toolTip1.AutoPopDelay = 5000; 
     toolTip1.InitialDelay = 1000; 
     toolTip1.ReshowDelay = 500; 
     // Force the ToolTip text to be displayed whether or not the form is active. 
     toolTip1.ShowAlways = true; 

     // Set up the ToolTip text for the Button and Checkbox. 
     toolTip1.SetToolTip(this.button1, "My button1"); 
     toolTip1.SetToolTip(this.checkBox1, "My checkBox1"); 
} 
+3

तो मैं अनुमान लगाओ इससे कोई फर्क नहीं पड़ता कि 'टूलटिप 1' वैरिएबल गुंजाइश से बाहर हो जाता है? – Svish

+0

अच्छा, यह मायने रखता है।यदि आप इसे किसी अन्य फ़ंक्शन से प्रबंधित करना चाहते हैं, तो इसे कक्षा सदस्य बनाना बेहतर है .. –

+1

आपके सभी रूपों के लिए एक स्थिर 'टूलटिप' के बारे में क्या? – Svish

111

खींचें के साथ यह करने के लिए अपने लेख है। आपको वास्तव में किसी नाम के अलावा किसी भी गुण देने की आवश्यकता नहीं है। फिर, नियंत्रण के गुणों में आप एक टूलटिप चाहते हैं, टूलटिप नियंत्रण के नाम से एक नई संपत्ति की तलाश करें जिसे आपने अभी जोड़ा है। जब कर्सर नियंत्रण को घुमाता है तो यह डिफ़ॉल्ट रूप से आपको टूलटिप देगा।

+1

यह एक बहुत अच्छा जवाब है। सरलता कुंजी है। –

+36

सुनिश्चित करें कि जब आप ऐसा करते हैं (जैसे 2 बजे) कि आप टूलटिप नियंत्रण का उपयोग करते हैं और टूलस्ट्रिप नियंत्रण नहीं करते हैं। –

+1

इस उत्तर के साथ, Winform में केवल एक टूलटिप जोड़ने से फॉर्म में सभी नियंत्रण अपने टूलटिप को देते हैं। – SAm

34
  1. आपके प्रपत्र
  2. को एक टूलटिप घटक जोड़ें नियंत्रण है कि आप के लिए
  3. ओपन संपत्ति ग्रिड (F4) एक टूल टिप चाहते हैं में से एक का चयन करें, सूची में आप एक संपत्ति बुलाया मिलेगा "टूलटिप पर टूलटिप" (या कुछ समान)। उस संपत्ति पर वांछित टूलटिप पाठ सेट करें।
  4. अन्य नियंत्रणों के लिए 2-3 दोहराएं
  5. हो गया।

चाल है कि यहाँ ToolTip नियंत्रण एक एक्सटेंडर नियंत्रण, जिसका अर्थ है कि यह अन्य नियंत्रण फार्म पर के लिए गुणों के सेट का विस्तार होगा है। दृश्यों के पीछे यह स्वेतलोज़र के जवाब जैसे कोड उत्पन्न करके हासिल किया जाता है। अन्य नियंत्रण उसी तरीके से काम कर रहे हैं (जैसे HelpProvider)।

+1

तो आप विभिन्न ग्रंथों के साथ कई नियंत्रणों के लिए एक ही टूलटिप का उपयोग कर सकते हैं? – Svish

+0

@ स्विस: हाँ, यह विस्तारक नियंत्रण का उद्देश्य है। –

+0

क्या यह क्रॉस उपयोगकर्ता कंट्रोल और फॉर्म भी इस्तेमाल किया जा सकता है? जैसे कि आपने अपने मानक प्रॉपर्टी वैल्यू के साथ एक स्थिर टूलटिप बनाया है। या क्या यह बुरा अभ्यास माना जाएगा? – Svish

-2

बस नियंत्रण के टूलटिपटेक्स्टेडेड ईवेंट की सदस्यता लें, और e.TooltipText को वापस करें, बहुत आसान।

+4

मुझे नहीं लगता कि यह एक मानक WinForm नियंत्रण घटना है। – Dan7

5

सी # में टूलटिप लगभग सभी यूआई नियंत्रणों में जोड़ने के लिए बहुत आसान है। इसके लिए आपको कोई माउसहोवर ईवेंट जोड़ने की आवश्यकता नहीं है।

यह कैसे करना है-

  1. अपने फ़ॉर्म के एक टूलटिप वस्तु जोड़े है। एक वस्तु पूरे रूप के लिए पर्याप्त है। ToolTip toolTip = new ToolTip();

  2. वांछित पाठ के साथ टूलटिप पर नियंत्रण जोड़ें।

    toolTip.SetToolTip(Button1,"Click here");

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