これは一般にマスター詳細と呼ばれ、マスターフォームでイベントを定義し、詳細フォームでイベントを購読します。
あり、インターネット上の多くの参照やチュートリアルがありますが、ここでの基本的な考え方です:
// Master form
public EventHandler SelectedItemChanged;
// Method to raise the changed event
public OnSelectedItemChanged(object sender, EventArgs e)
{
if (SelectedItemChanged != null)
SelectedItemChanged(this, new EventArgs());
}
public void ShowDetailForm()
{
var detailForm = new DetailForm();
detailForm.Subscribe(this); // You can also use an interface
detailForm.Show();
}
// Detail form
// Need to subscribe typically in constructor, Loaded event, or custom method
// also need reference to master form
public void Subscribe(MasterForm form)
{
form.SelectedItemChanged += new DetailForm_SelectedItemChanged;
}
private void DetailForm_SelectedItemChanged(object sender, EventArgs e)
{
// Handle the event
}
http://stackoverflow.com/questions/977326/propagating-events-from-one-form-to - 他の形式 - イン - cシャープ –