2012-05-17 11 views
6

पर टूलस्ट्रिप में आइटम जोड़ना हैलो मेरे पास एक "पसंदीदा" मेनू के साथ टूलस्ट्रिपमेनू है जिसे मैं अपने WinForms ऐप के दौरान रन टाइम पर उप आइटम जोड़ना चाहता हूं। मेरे पास एक डाटाग्रिडव्यू है कि मैं एक संदर्भ मेनू दिखाने के लिए राइट क्लिक करता हूं जिसमें "पसंदीदा में जोड़ें" विकल्प होता है। जब उस घटना को निकाल दिया जाता है, तो मैं इस पसंदीदा मेनू में डेटाग्रायव्यू से चयनित पंक्ति से कुछ पाठ का उपयोग करके एक आइटम जोड़ना चाहता हूं (यह मुझे पता है कि पहले से ही कैसे करें)। मुश्किल हिस्सा यह है कि मुझे अपने newlyCreatedToolStripMenuItem_Click ईवेंट के लिए कोड बनाने की आवश्यकता है। मैं निर्धारित करूंगा कि बाद में मेरी पसंदीदा सूची को कैसे सहेजना है। राइट "जॉन स्मिथ"रनटाइम

चुनें ContextMenu

से "पसंदीदा में जोड़ें" पसंदीदा ToolStripMenu है एक नया आइटम से जोड़ रहे है के लिए datagridview पंक्ति पर क्लिक करें

:

तो हम के लिए जा रहे हैं जो "जॉन स्मिथ"

"जॉन स्मिथ" ToopStripMenuItem पर क्लिक करने से एक क्रिया (जैसे कि डार्ग्रिडव्यू पंक्ति, आदि में उस पंक्ति का चयन करें)

कोई भी अच्छा प्रारंभिक विचार?

उत्तर

12

तो मैं तुम सही समझते हैं, मैं लगता है कि यह ठीक है तुम क्या चाहते:

private void buttonAddFav_Click(object sender, EventArgs e) 
    { 
     ToolStripItem item = new ToolStripMenuItem(); 
     //Name that will apear on the menu 
     item.Text = "Jhon Smith"; 
     //Put in the Name property whatever neccessery to retrive your data on click event 
     item.Name = "GridViewRowID or DataKeyID"; 
     //On-Click event 
     item.Click += new EventHandler(item_Click); 
     //Add the submenu to the parent menu 
     favToolStripMenuItem.DropDownItems.Add(item); 
    } 

    void item_Click(object sender, EventArgs e) 
    { 
     throw new NotImplementedException(); 
    } 
4

यह काफी सरल है। आपको बस एक कॉलबैक विधि सेट अप करना है जिसका उपयोग सभी पसंदीदा ToolStripMenuItem के लिए किया जाता है। इस विधि में आप item.Text या item.Name विशेषताओं की तुलना करें और विभिन्न पसंदीदा विधियों को निष्पादित करें।

private void FavoriteToolStriptem_Click(object sender, EventArgs e) { 
    ToolStripMenuItem item = sender as ToolStripMenuItem; 
    MessageBox.Show("You clicked on the menu item called " + item.Name + " shown as " + item.Text); 
} 
+0

यह भी सही था, धन्यवाद! – ikathegreat