MFCの場合、Command Routing なる概念があり、MDI で複数の子 Window を
出している場合に、Main Window のMenuから選んだメニュー項目を、
現在 Active な子 Window に対して「伝達」することができて、
CView::OnXxxx() のようなメソッドで受け取ることができました。
Xxxx の部分には、Menu項目の名前に関係した関数名が入ります。
MENU 項目には、IDM_XXXX のような定数値を関連付けておいて、
「メッセージマップ」なる場所に、
ON_COMMAND(IDM_XXXX, OnXxxx)
と書いておいて、ID 値とメソッド名を対応させます。
重要なのは、実行段階でその時にActiveになっているCViewにメッセージを伝達
することで、複数の子ウィンドウが有った場合、どの子ウィンドウがActive
になっているかによって、伝達されるCViewは変化します。
あと、このIDM_XXXとメソッドの関数定義、メッセージマップの項目は、全てIDEが
自動生成する機能があります。

C#でも同様のことはできますか?