2009-10-22 20 views
7

Bir metin kutusuna yazılan her şeyi bir posta kutusuna eklemek istiyorum. Dosya> Son Aramalar şeyinde var.Menülere nasıl şeyler eklenir?

Programatik olarak nasıl yapabilirim? Ve bir olay işleyicisini dinamik olarak atayabilirim, böylece bir kullanıcı bu alt klasördeki X öğesini tıklattığında, metin BACK metin kutusuna kopyalanır?

DÜZENLEME: programlama (pic) klasörüne Busquedas Recientes arayabilirler Nasıl olay işleyicisi object sender parametrenin yararlanarak yapabilirsiniz

alt text

+0

Hangi IDE'yi veya platformu/dili kullanıyorsunuz? (örneğin, Win32 API'sı ile C, .NET Framework üzerinde C#, vb.) – Achimnol

cevap

8

. Bunun çoğu benim kafamın üstündedir, bu yüzden sadece olduğunu tahmin ediyorum. derlenecek ama başlamanız gerekir.

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

İlk yöntem kinda çalışır. Arama ekleniyor ama en üst düzeyde. Bu heralite içine eklenmeye ihtiyacım var: Dosya> RecentSearches> THINGS GO HERE. Herhangi bir yardım? –

+0

Belirli bir yer eki için düzenlemelerimi görün. –

4

Oldukça yalındır. Aşağıdaki yapabilirsiniz: Click olay çalışmıyorsa, sonra

ToolStripMenuItem menuItem 

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

, sen menuItem bir "DropDownItemClicked" olayını ekleyebilir (Ben doğru menü öğesini tespit olmaz sorun vardı) . tıklattığınız öğenin metnini almak için aşağıdakileri yapın:

private void DropedDownItemClickedEvent(object sender, ToolStripItemClickedEventArgs e) 
{ 
    string text = e.ClickedItem.Text; 
} 
Umarım bu yardımcı olur.

Ayrıca, Olayı da kaldırmayı unutmayın. Bunu yarattığım tüm dinamik menülerle yapmayı unuttum ve bir şekilde hatıralarımın yarısını yedim. : D

+0

Lol. : Son yorum için P + 1. Bana başka bir soru xD kaydetti –

İlgili konular