我想添加任何寫在文本框中的菜單。在我有文件>最近搜索的東西。如何以編程方式將內容添加到menustrip?
我該如何編程?我可以動態分配一個事件處理程序,以便當用戶單擊該子文件夾中的X項目時,文本被複制回到文本框?
編輯:我如何編程(中圖)的文件夾Busquedas Recientes上調用
我想添加任何寫在文本框中的菜單。在我有文件>最近搜索的東西。如何以編程方式將內容添加到menustrip?
我該如何編程?我可以動態分配一個事件處理程序,以便當用戶單擊該子文件夾中的X項目時,文本被複制回到文本框?
編輯:我如何編程(中圖)的文件夾Busquedas Recientes上調用
您可以趁着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);
}
第一種方法比較有效。搜索正在被添加,但是在最頂層。我需要它被添加到這個heirarchy:文件> RecentSearches>事情到這裏。任何幫助? – 2009-10-22 15:53:16
查看我編輯的特定位置插入。 – 2009-10-22 16:04:27
這是相當直接的。你可以做到以下幾點:
ToolStripMenuItem menuItem
foreach (string text in collectionOfText)
{
ToolStripMenuItem foo = new ToolStripMenuItem(text);
foo.Click += new EventHandler(ClickEvent);
menuItem.DropDownItems.Add(foo);
}
隨後,如果Click事件不工作(我有麻煩的地方就無法檢測到正確的菜單項),您可以在「DropDownItemClicked」事件添加到菜單項。並獲得您點擊的項目的文本,你做:
private void DropedDownItemClickedEvent(object sender, ToolStripItemClickedEventArgs e)
{
string text = e.ClickedItem.Text;
}
我希望有所幫助。
哦,不要忘記刪除事件。我忘記了用我創建的所有動態菜單做到這一點,並以某種方式結束了我的一半記憶。 :D
大聲笑。 :最後評論的P +1。給我另一個問題xD – 2009-10-22 16:02:03
您使用哪種IDE或平臺/語言? (例如,使用Win32 API的C,使用.NET Framework的C#等)。 – Achimnol 2009-10-22 15:46:58