मैं विंडोज फॉर्म का उपयोग करके एक बटन पर टूलटिप कैसे प्रदर्शित कर सकता हूं ?
मैं विंडोज फॉर्म का उपयोग करके एक बटन पर टूलटिप कैसे प्रदर्शित कर सकता हूं ?
जवाबों:
टूलटिप वास्तव में एक WinForms नियंत्रण है जो एक ही रूप में कई तत्वों के लिए टूल टिप्स प्रदर्शित करता है।
कहते हैं कि आपके बटन को MyButton कहा जाता है।
टूलटिप स्वचालित रूप से प्रकट होगा जब कर्सर बटन पर होवर करता है, लेकिन यदि आपको इसे प्रोग्रामेटिक रूप से प्रदर्शित करने की आवश्यकता है, तो कॉल करें
MyToolTip.Show("Tooltip text goes here", MyButton)
टूलटिप, और MyToolTip.Hide (MyButton) को फिर से गायब करने के लिए अपने कोड में।
प्रपत्र डिज़ाइनर का उपयोग करना:
आप निम्न कॉल का उपयोग करके टूल टिप को भी प्रोग्रामेटिक रूप से सेट कर सकते हैं:
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
आप टूलटिप क्लास का उपयोग कर सकते हैं:
एक नियंत्रण के लिए एक टूलटिप बनाना
उदाहरण:
private void Form1_Load(object sender, System.EventArgs e)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.Button1, "Hello");
}
new ToolTip().SetToolTip(this.Button1, "Hello");
डिफ़ॉल्ट टूलटिप के लिए इसका उपयोग किया जा सकता है -
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");
यदि टूलटिप संदेश के लिए स्वरूपण आवश्यक है तो एक अनुकूलित टूलटिप का उपयोग किया जा सकता है। यह कस्टम स्वरूपण द्वारा बनाया जा सकता है और नियंत्रण के माउस होवर इवेंट पर टूलटिप संवाद के रूप में उपयोग कर सकता है। अधिक जानकारी के लिए कृपया निम्नलिखित लिंक देखें -
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
टैग संपत्ति में आलसी और कॉम्पैक्ट भंडारण पाठ
यदि आप थोड़े आलसी हैं और नियंत्रण के टैग गुण का उपयोग किसी और चीज़ के लिए नहीं करते हैं, तो आप इसका उपयोग टूलटिप पाठ को संग्रहीत करने और माउसओवर ईवेंट हैंडलर्स को ऐसे सभी नियंत्रणों में असाइन करने के लिए कर सकते हैं :
private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
ToolTip1 = new System.Windows.Forms.ToolTip();
foreach(Control ctrl in this.Controls)
{
if (ctrl is Button && ctrl.Tag is string)
{
ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
{
var btn = (Control)o;
ToolTip1.SetToolTip(btn, btn.Tag.ToString());
});
}
}
}
इस स्थिति में टैग संपत्ति में स्ट्रिंग वाले सभी बटन को एक माउसओवर ईवेंट सौंपा गया है । इसे कॉम्पैक्ट रखने के लिए माउसओवर इवेंट को लैम्बडा एक्सप्रेशन का उपयोग करके इनलाइन परिभाषित किया गया है। इस घटना में किसी भी बटन को दबाने पर उसका टैग टेक्स्ट टूलटिप को सौंपा जाएगा और दिखाया जाएगा।
.NET फ्रेमवर्क एक टूलटिप क्लास प्रदान करता है। अपने फॉर्म में उन सभी में से एक को जोड़ें और फिर प्रत्येक आइटम के लिए माउसओवर ईवेंट पर, जिसके लिए आप टूलटिप चाहेंगे, कुछ इस तरह से करें:
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
private void Form1_Load(object sender, System.EventArgs e)
{
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
डेवके के जवाब के आधार पर , मैंने एक नियंत्रण एक्सटेंशन बनाया:
public static void SetToolTip(this Control control, string txt)
{
new ToolTip().SetToolTip(control, txt);
}
तब आप एक लाइन के साथ किसी भी नियंत्रण के लिए टूलटिप सेट कर सकते हैं:
this.MyButton.SetToolTip("Hello world");
ज़रूर, सिर्फ माउसओवर इवेंट को हैंडल करें और इसे टूल टिप प्रदर्शित करने के लिए कहें। टी एक टूलटिप है जिसे ग्लोबल्स या कंस्ट्रक्टर में परिभाषित किया गया है:
ToolTip t = new ToolTip();
तब ईवेंट हैंडलर:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}