winforms
एकीकरण में मदद करें
खोज…
टिप्पणियों
आप अलग-अलग तरीकों से विंडोज फॉर्म एप्लीकेशन में फॉर्म और कंट्रोल के लिए मदद दे सकते हैं। आप एक पॉप-अप मदद दिखा सकते हैं, एक सीएचएम फ़ाइल या एक यूआरएल खोल सकते हैं। आप प्रपत्र, नियंत्रण और संवाद के लिए संदर्भ-संवेदनशील मदद दिखा सकते हैं।
HelpProvider घटक
आप घटक के लिए संदर्भ संवेदनशील मदद प्रदान करने के लिए एक HelpProvider
घटक सेटअप कर सकते हैं। इस तरह जब उपयोगकर्ता F1 कुंजी या फ़ार्म की मदद बटन दबाता है, तो आप स्वचालित रूप से कर सकते हैं:
- नियंत्रण के लिए पॉप-अप संवेदनशील संदर्भ दिखाएं
- संदर्भ के आधार पर CHM फ़ाइल खोलें (सामग्री की तालिका दिखाएं, कोई कीवर्ड या इंडेक्स दिखाएं, कोई विषय दिखाएं)
- डिफ़ॉल्ट ब्राउज़र का उपयोग करके URL पर नेविगेट करें
सहायता वर्ग
इस प्रकार की सहायता प्रदान करने के लिए आप कोड में Help
वर्ग का उपयोग कर सकते हैं:
- नियंत्रण के लिए पॉप-अप की मदद लें
- संदर्भ के आधार पर CHM फ़ाइल खोलें (सामग्री की तालिका दिखाएं, कोई कीवर्ड या इंडेक्स दिखाएं, कोई विषय दिखाएं)
- डिफ़ॉल्ट ब्राउज़र का उपयोग करके URL पर नेविगेट करें
हेल्पलेस असिस्टेड इवेंट
जब उपयोगकर्ता एफ 1 दबाते हैं या प्रपत्र के हेल्प बटन पर क्लिक करते हैं तो आप कस्टम क्रिया करने के लिए Control
ऑब्जेक्ट्स या Form
की HelpRequested
इवेंट को हैंडल कर सकते हैं।
फॉर्म का मदद बटन
आप टाइटल-बार पर हेल्प बटन दिखाने के लिए Form
सेटअप कर सकते हैं। इस तरह, यदि उपयोगकर्ता हेल्प बटन पर क्लिक करता है, तो कर्सर बदल जाएगा ?
कर्सर और किसी भी बिंदु पर क्लिक करने के बाद, HelpProvider
का उपयोग करके नियंत्रण से जुड़ी कोई भी संदर्भ-संवेदनशील मदद दिखाई जाएगी।
मेसगबॉक्स और कॉमनडायलॉग्स की मदद बटन
आप घटकों की सहायता बटन का उपयोग करके MessageBox
, OpenFileDialog
, SaveDialog
और ColorDialog
लिए मदद प्रदान कर सकते हैं।
टूलटिप घटक
जब उपयोगकर्ता नियंत्रण पर कुछ मदद पाठ प्रदर्शित करने के लिए ToolTip
घटक का उपयोग कर सकते हैं। ToolTip
को किसी भी नियंत्रण के साथ जोड़ा जा सकता है।
ध्यान दें
HelpProvider
और Help
class का उपयोग करके आप HTML मदद प्रारूप में संकलित सहायता फाइलें (.chm) या HTML फाइलें दिखा सकते हैं। संकलित सहायता फाइलें पृष्ठों में सामग्री, एक सूचकांक, खोज क्षमता और कीवर्ड लिंक की एक तालिका प्रदान करती हैं। शॉर्टकट केवल संकलित सहायता फ़ाइलों में काम करते हैं। आप HTML हेल्प वर्कशॉप का उपयोग करके HTML हेल्प 1.x फाइल्स जेनरेट कर सकते हैं। HTML मदद के बारे में अधिक जानकारी के लिए, "HTML सहायता कार्यशाला" और अन्य HTML मदद विषय Microsoft HTML मदद देखें ।
मदद फ़ाइल दिखाएँ
Help Class
HTML हेल्प 1.0 इंजन को इनकैप्सुलेट करता है। आप HTML मदद स्वरूप में संकलित सहायता फ़ाइलों (.chm) या HTML फ़ाइलों को दिखाने के लिए मदद ऑब्जेक्ट का उपयोग कर सकते हैं। संकलित सहायता फ़ाइलें पृष्ठों में सामग्री, सूचकांक, खोज और कीवर्ड लिंक की तालिका प्रदान करती हैं। शॉर्टकट केवल संकलित सहायता फ़ाइलों में काम करते हैं। आप HTML Help Workshop
नामक माइक्रोसॉफ़्ट के मुफ्त टूल से HTML हेल्प 1.x फाइल्स जेनरेट कर सकते हैं।
दूसरी विंडो में संकलित सहायता फ़ाइल दिखाने का आसान तरीका:
सी#
Help.ShowHelp(this, helpProviderMain.HelpNamespace);
VB.NET
Help.ShowHelp(Me, hlpProviderMain.HelpNamespace)
MessageBox के लिए मदद दिखाएँ
आप संदेश बॉक्स के लिए विभिन्न तरीकों से सहायता प्रदान कर सकते हैं। आप एक Help
बटन या नहीं दिखाने के लिए एक MessageBox
कॉन्फ़िगर कर सकते हैं। साथ ही आप MessageBox
को इस तरह से कॉन्फ़िगर कर सकते हैं कि जब उपयोगकर्ता मदद बटन पर क्लिक करके या एफ 1 दबाकर मदद के लिए अनुरोध करता है, तो यह सीएचएम फ़ाइल दिखा सकता है या URL पर नेविगेट कर सकता है या एक कस्टम क्रिया कर सकता है। इस विषय में कुछ उदाहरण इस प्रकार हैं।
सभी निम्न उदाहरणों में, MessageBox
बॉक्स इस तरह होगा:
CHM फ़ाइल दिखाएं और एक कीवर्ड (इंडेक्स) पर नेविगेट करें
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.KeywordIndex, "SomeKeyword");
सीएचएम फ़ाइल दिखाएं और किसी विषय पर नेविगेट करें
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
सीएचएम फ़ाइल दिखाएं और सामग्री की तालिका में पहला सहायता पृष्ठ नेविगेट करें
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"help.chm");
डिफ़ॉल्ट ब्राउज़र खोलें और URL पर नेविगेट करें
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0,
"http://example.com");
मदद बटन या F1 कुंजी दबाने पर कस्टम क्रिया करें
इस स्थिति में आपको MessageBox
के माता-पिता की HelpRequested
घटना को संभालना चाहिए और कस्टम ऑपरेशन करना चाहिए:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
// Perform custom action, for example show a custom help form
var f = new Form();
f.ShowDialog();
}
तब आप मदद बटन के साथ MessageBox
दिखा सकते हैं:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, true);
या सहायता बटन के बिना इसे दिखाएं:
MessageBox.Show("Some Message", "Title", MessageBoxButtons.YesNoCancel,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button3, 0, false);
राष्ट्रमंडल के लिए सहायता दिखाएँ
आप OpenFileDialog
, SaveFileDialog
और ColorDialog
लिए सहायता प्रदान कर सकते हैं। true
लिए डायलॉग की ShowHelp
प्रॉपर्टी को सेट करने के लिए और डायलॉग के लिए HelpRequest
इवेंट को हैंडल करें:
void openFileDialog1_HelpRequest(object sender, EventArgs e)
{
//Perform custom action
Help.ShowHelp(this, "Http://example.com");
}
ध्यान दें
- यदि आप
ShowHelp
कोtrue
सेटShowHelp
तो ईवेंट केवल तभी उठाया जाएगा। - ईवेंट केवल
Help
बटन पर क्लिक करके उठाया जाएगा और F1 कुंजी का उपयोग करके नहीं बढ़ाएगा।
नीचे दी गई छवि में आप एक मदद बटन के साथ एक OpenFileDialog
देख सकते हैं:
नियंत्रण और प्रपत्र की मदद से असम्बद्ध घटना को संभालना
जब कोई उपयोगकर्ता नियंत्रण पर F1 दबाता है या प्रपत्र ( ? ) के हेल्प बटन पर क्लिक करता है और फिर एक नियंत्रण पर क्लिक करता है तो HelpRequested
ईवेंट को उठाया जाएगा।
जब उपयोगकर्ता नियंत्रण या प्रपत्र के लिए मदद का अनुरोध करते हैं, तो आप कस्टम एक्शन प्रदान करने के लिए इस घटना को संभाल सकते हैं।
HelpRequested
बबल अप तंत्र का समर्थन HelpRequested
है। यह आपके सक्रिय नियंत्रण के लिए आग उगलता है और यदि आप इस घटना को नहीं संभालते हैं और इसके आयोजन की Handled
संपत्ति को true
, तो यह मूल नियंत्रण पदानुक्रम तक बन जाता है।
उदाहरण के लिए यदि आप नीचे दिए गए फॉर्म की HelpRequested
घटना को संभालते हैं, तो जब आप F1 दबाते हैं तो एक संदेश बॉक्स पॉप अप होगा और सक्रिय नियंत्रण का नाम दिखाएगा, लेकिन textBox1
यह एक अलग संदेश दिखाएगा:
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
var c = this.ActiveControl;
if(c!=null)
MessageBox.Show(c.Name);
}
private void textBox1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
hlpevent.Handled = true;
MessageBox.Show("Help request handled and will not bubble up");
}
आप किसी अन्य कस्टम क्रिया को कर सकते हैं जैसे URL में नेविगेट करना या Help
वर्ग का उपयोग करके CHM फ़ाइल दिखाना।
हेल्प क्लास का उपयोग करके मदद दिखाएं
इस प्रकार की सहायता प्रदान करने के लिए आप कोड में Help
वर्ग का उपयोग कर सकते हैं:
- नियंत्रण के लिए पॉप-अप की मदद लें
- संदर्भ के आधार पर CHM फ़ाइल खोलें (सामग्री की तालिका दिखाएं, कोई कीवर्ड या इंडेक्स दिखाएं, कोई विषय दिखाएं)
- डिफ़ॉल्ट ब्राउज़र का उपयोग करके URL पर नेविगेट करें
पॉप-अप विंडो में मदद दिखाएँ
मदद पॉप-अप विंडो प्रदर्शित करने के लिए आप Help.ShowPopup
का उपयोग कर सकते हैं:
private void control_MouseClick(object sender, MouseEventArgs e)
{
var c = (Control)sender;
var help = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
"sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
if (c != null)
Help.ShowPopup(c, "Lorem ipsum dolor sit amet.", c.PointToScreen(e.Location));
}
यह आपके माउस पॉइंटर स्थान पर पॉप-अप की मदद करेगा:
CHM हेल्प फ़ाइल दिखाएं
आप Help.ShowHelp
पद्धति के विभिन्न अधिभार का उपयोग कर सकते हैं, Help.ShowHelp
फ़ाइल दिखाने के लिए और एक कीवर्ड, एक विषय, सूचकांक या सामग्री की तालिका पर नेविगेट करने के लिए:
सामग्री की मदद तालिका दिखाएं
Help.ShowHelp(this, "Help.chm");
विशिष्ट कीवर्ड (इंडेक्स) के लिए सहायता दिखाएं
Help.ShowHelp(this, "Help.chm", HelpNavigator.Index, "SomeKeyword");
विशिष्ट विषय के लिए सहायता दिखाएं
Help.ShowHelp(this, "Help.chm", HelpNavigator.Topic, "/SomePath/SomePage.html");
Url दिखाओ
आप ShowHelp
विधि का उपयोग करके डिफ़ॉल्ट ब्राउज़र में कोई भी URL दिखा सकते हैं:
Help.ShowHelp(this, "Http://example.com");
प्रपत्र के शीर्षक पट्टी पर सहायता बटन दिखाएं
आप Form
शीर्षक-बार में एक सहायता बटन दिखा सकते हैं। ऐसा करने के लिए, आपको चाहिए:
-
HelpButton
के फॉर्म की संपत्ति कोtrue
सेट करें। -
false
MinimizeBox
औरMaximizeBox
सेटMinimizeBox
।
तब Form
शीर्षक-बार पर एक सहायता बटन दिखाई देगा:
जब आप मदद बटन पर क्लिक करते हैं, तो कर्सर को ए में बदल दिया जाएगा ?
कर्सर:
फिर यदि आप किसी Control
या Form
पर क्लिक करते हैं, तो HelpRequested
ईवेंट को उठाया जाएगा और यदि आपके पास एक HelpProvider
सेटअप है, तो HelpProvider
का उपयोग करके नियंत्रण के लिए सहायता दिखाई HelpProvider
।
कस्टम हेल्प बटन बनाएँ जो मानक फॉर्म हेल्पबटन की तरह काम करता है
यदि आपके पास MinimizeBox
साथ एक Form
और MaximizeBox
true
सेट true
, तो आप Form
शीर्षक-बार पर सहायता बटन नहीं दिखा सकते हैं और कर्सर पर नियंत्रण में क्लिक करने में सक्षम होने के लिए इसे बदलने में मदद बटन पर क्लिक करने की सुविधा खो देंगे। मदद दिखाएँ।
आप MenuStrip
पर एक मेनू आइटम बना सकते हैं जैसे मानक सहायता बटन। ऐसा करने के लिए, एक MenuStrip
को फ़ॉर्म में जोड़ें और एक ToolStripMenuItem
को इसमें जोड़ें, फिर आइटम के इवेंट पर Click
:
private const int WM_SYSCOMMAND = 0x0112;
private const int SC_CONTEXTHELP = 0xF180;
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern IntPtr SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
private void helpToolStripMenuItem_Click(object sender, EventArgs e)
{
SendMessage(this.Handle, WM_SYSCOMMAND, SC_CONTEXTHELP, 0);
}
नोट: यदि आप एक Button
का उपयोग करना चाहते हैं, तो आपको भी Button
सेट button1.Capture = false;
संदेश भेजने से पहले। लेकिन यह एक ToolStripMenuItem
लिए आवश्यक नहीं है।
फिर जब आप सहायता मेनू पर क्लिक करेंगे, तो कर्सर को बदल दिया जाएगा ?
जब आप मानक सहायता बटन पर क्लिक करेंगे तो कर्सर और कार्य करेगा:
हेल्पबूटन को संभालना फॉर्म की घटना है
जब कोई उपयोगकर्ता किसी पर क्लिक किया आप पता लगा सकते हैं HelpButton
पर से निपटने के द्वारा प्रपत्र का शीर्षक-बार HelpButtonClicked
। आप घटना जारी रखने या सेटिंग से इसे रद्द कर सकते हैं Cancel
इसकी घटना args की संपत्ति को true
।
private void Form1_HelpButtonClicked(object sender, CancelEventArgs e)
{
e.Cancel = true;
//Perform some custom action
MessageBox.Show("Some Custom Help");
}