2017-01-18 65 views
0

我有一個窗體窗體應用程序有一個窗體(窗體1)一個菜單窗體(menustrip1)和一個用戶控件(usercontrol1)。我編寫的代碼將用戶控件加載到像這樣的表單中。 UserControl1 UC = new UserControl1(); UC.Dock = DockStyle.Fill; this.Controls.Clear(); UC.Controls.Add(menuStrip1); this.Controls.Add(UC); 然後,當加載UC時,我想添加菜單項並處理它們的事件。問題是,當我使用此代碼添加項目它不起作用,但不會出錯。我做錯了嗎?或者我可以不按照這種方式與菜單欄互動。C#從窗體中控制一個窗體中的菜單條形式

menuStrip1.Items.Remove(fileToolStripMenuItem); ToolStripMenuItem Save = new ToolStripMenuItem("Save", null, saveToolStripMenuItem_Click); fileToolStripMenuItem.DropDownItems.Add(Save);

+0

您是否嘗試過通過控件集合訪問的MenuStrip?如果您填寫名稱屬性,則可以將其用作索引。 – tinstaafl

+1

菜單欄中是否缺少「文件」和「文件 - >保存」?當從菜單欄中移除'fileToolStripMenuItem'時,它不會顯示在菜單欄中,也不會將其添加到'fileToolStripMenuItem'中的保存按鈕。 – gunnerone

+0

我不太清楚你通過控件集合訪問它的意思。我以爲我是通過調用menustrip.item訪問控件並以此方式操作它。原諒我的無知我沒有任何語言的正式培訓。 –

回答

0

你的方法完全不同意...

假設「menuStrip1」滴在主窗體上,不得不說確切的名字,當你將它添加到您的用戶控件,你可以「按名稱」訪問它像這在Load()事件:

private void UserControl1_Load(object sender, EventArgs e) 
    { 
     MenuStrip menu = this.Controls["menuStrip1"] as MenuStrip; 

     ToolStripMenuItem File = new ToolStripMenuItem("File", null, fileToolStripMenuItem_Click); 
     menu.Items.Add(File); 
     ToolStripMenuItem Save = new ToolStripMenuItem("Save", null, saveToolStripMenuItem_Click); 
     File.DropDownItems.Add(Save); 
    } 

也就是有沒有辦法添加到與該工具條菜單進來還是我必須從頭開始它現有的文件?

假設「文件」已經被放置在主菜單上並完全命名爲「fileToolStripMenuItem」,這將與上面已經接受的代碼非常相似。而不是訪問this.Controls()的,但是,我們會訪問menu.Items()這樣的:

 MenuStrip menu = this.Controls["menuStrip1"] as MenuStrip; 
     ToolStripMenuItem File = menu.Items["fileToolStripMenuItem"] as ToolStripMenuItem; 

     ToolStripMenuItem Save = new ToolStripMenuItem("Save", null, saveToolStripMenuItem_Click); 
     File.DropDownItems.Add(Save); 
+0

我做了上述,這就是我正在尋找的。問題是,當你編程時你會這樣做。 –

+0

還有一種方法可以添加到工具條菜單中的現有文件中,還是必須從頭開始? –

+0

我得到的可能是你發佈的同一時間。我更喜歡這種方式,因爲它是將所有東西放在一起的更簡潔的方式。我現在正在同時使用這兩個用戶控件的工作。這是我的最終目標是能夠在一個控件中使用多個控件。你是老師嗎?你的解釋方式使我朝着正確的方向前進。我喜歡你給我的代碼,但你解釋得很好。 –

0

Gunnerone了吧。保持菜單條和所有事件的形式。在menustripclick處添加與特定用戶控件相關的菜單項。在UC調用中爲動作定義一個公共方法,並從表單調用它。這很簡單,我一直堅持這個。

相關問題