2009-10-22 8 views
7

मैं मेनस्ट्रिप में टेक्स्टबॉक्स में जो भी लिखा है उसे जोड़ना चाहता हूं। फ़ाइल में> हाल ही की खोजें मेरे पास है।प्रोग्रामिंग के लिए मेनस्ट्रिप में चीज़ें कैसे जोड़ें?

मैं प्रोग्रामिक रूप से कैसे कर सकता हूं? और क्या मैं एक ईवेंट हैंडलर गतिशील रूप से असाइन कर सकता हूं ताकि जब कोई उपयोगकर्ता उस सबफ़ोल्डर में एक्स आइटम पर क्लिक करता है, तो पाठ को टेक्स्टबॉक्स पर वापस कॉपी किया जाता है?

संपादित करें: मैं कैसे प्रोग्राम के फ़ोल्डर Busquedas Recientes (पिक में) पर कॉल कर सकते हैं

alt text

+0

आप कौन सी आईडीई या मंच/भाषा का उपयोग कर रहे हैं? (उदाहरण के लिए, Win32 API के साथ सी, .NET Framework, या आदि पर सी #) – Achimnol

उत्तर

8

आप ईवेंट हैंडलर में object sender पैरामीटर का लाभ उठा कर ऐसा कर सकते हैं। इनमें से अधिकांश मेरे सिर के ऊपर से है इसलिए मैं केवल अनुमान अनुमान लगाता हूं कि यह संकलित होगा लेकिन इसे आपको प्रारंभ करना चाहिए।

void AddMenuItem(string text, string action) 
{ 
    ToolStripMenuItem item = new ToolStripMenuItem(); 
    item.Text = text; 
    item.Click += new EventHandler(item_Click); 
    item.Tag = action; 

    //first option, inserts at the top 
    //historyMenu.Items.Add(item); 

    //second option, should insert at the end 
    historyMenuItem.DropDownItems.Insert(historyMenuItem.DropDownItems.Count, item); 
} 

private void someHistoryMenuItem_Click(object sender, EventArgs e) 
{ 
    ToolStripMenuItem menuItem = sender as ToolStripMenuItem; 

    string args = menuItem.Tag.ToString(); 

    YourSpecialAction(args); 
} 
+0

पहली विधि kinda काम करता है। खोज जोड़ा जा रहा है लेकिन शीर्ष पर सबसे अधिक स्तर पर। मुझे इसे इस विरासत में जोड़ने की ज़रूरत है: फ़ाइल> हालिया खोजें> चीज़ें यहां जाएं। कोई मदद? –

+0

किसी विशिष्ट स्थान सम्मिलन के लिए मेरे संपादन देखें। –

4

यह सीधे आगे है। आप निम्न कार्य कर सकते हैं:

ToolStripMenuItem menuItem 

foreach (string text in collectionOfText) 
{ 
    ToolStripMenuItem foo = new ToolStripMenuItem(text); 
    foo.Click += new EventHandler(ClickEvent); 
    menuItem.DropDownItems.Add(foo); 
} 

बाद में, अगर घटना क्लिक करें काम नहीं करता है, तो आप MENUITEM के लिए एक "DropDownItemClicked" घटना में जोड़ सकते हैं (मैं मुसीबत जहां यह सही मेनू आइटम का पता नहीं लगा होता था) । और आपके द्वारा क्लिक किए गए आइटम का टेक्स्ट प्राप्त करने के लिए आप:

private void DropedDownItemClickedEvent(object sender, ToolStripItemClickedEventArgs e) 
{ 
    string text = e.ClickedItem.Text; 
} 

मुझे उम्मीद है कि इससे मदद मिलती है।

ओह और ईवेंट को भी हटाने के लिए मत भूलना। मैं ऐसा करने के लिए भूल गया था कि मैंने जो गतिशील मेनू बनाया था और किसी भी तरह से मेरी आधा याद आ रही थी। : डी

+0

लॉल। : अंतिम टिप्पणी के लिए पी +1। मुझे एक और सवाल xD बचाया –

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