2016-03-31 4 views
0

MDI親フォームのメニュー項目をループする方法が必要です。彼らはているとき、私は、ボタンの背景を設定していているので、なぜWinFormsのMDI親フォームのメニュー項目をループします

理由は、彼らがを選択ているものをユーザに示すためにを活性化しました。

下の図は、メニューにSystem Settingsが選択され、右側にchild formが選択されている例を示しています。

systemManagementToolStripMenuItem.BackColor = Color.Gray; 

enter image description here

どうすれ通じIループので、私はメニュー項目をクリックするたびに、それが選択した項目の背景色を変更すること:

は現在、私は、この使用して直接コードを達成します。

+1

リストの 'ToolStripMenuItem'をホールドしてリストをループさせてみませんか? – KDecker

+0

このMDIはどうしてですか?選択が左側にあるときにウィンドウメニューが表示されるのはなぜですか?不思議な質問...メニューを完全に捨てれば解決する必要はありません。 –

+0

@HansPassantどのようにメニュー駆動型アプリケーションを作成しますか?私はMS Accessのバックグラウンドを持つこの環境全体に新しくなっていますので、私の限られた知識の中で最良の方法でした。 – Justin

答えて

1

ToolStipMenuItemsListに集めて、ユーザーがループを開始するアクションを実行するたびにリストをループするだけです。

// First create the list of menu items 
int selectedMenuItem = 0; 
List<ToolStripMenuItem> menuItems = new List<ToolStripMenuItem>(); 
menuItems.Add(systemManagementToolStripMenuItem); 

// When the user performs some action, such as pressing down arrow 
selectedMenuItem = (selectedMenuItem + 1) % menuItems.Count; 
UpdateSelectedItems(); 

// Have some method to update the buttons 
public void UpdateSelectedItems() 
{ 
    foreach(var item in menuItems) 
     item.BackColor = Color.DarkGray; 
    menuItems[selectedMenuItem].BackColor = Color.Gray; 
} 
関連する問題