2009-08-17 3 views
2

私はC#を初めて使用しており、Windowsフォームを互いに連携させたいと考えています。私はgoogled bubbling in C#しかしそれほど助けにはならなかった。私がバブリングを学ぶ良い方法は何ですか?どこでバブリングに関する良いチュートリアルを見つけることができますか?

EDIT:ユーザーが編集 - >優先度をクリックしたときに表示/作成されるオプションフォームが必要です。私はその後、ユーザーがオプションフォームで変更した設定をメインフォームに中継する必要があります。

+1

「バブル」は、ブラウザ/ DOMに最も一般的に関連付けられていますが、winformsではありません。これはあなたが意味することですか? –

+0

いいえ私は明確にするために私の質問に多くの情報を追加しました。 –

答えて

1

二つのアプローチ:

は、あなたの好みのフォームのプロパティを入れて、ユーザーが[OK]をクリックすると、メインフォームからそれらにアクセスします。

if (preferenceForm.ShowDialog() == DialogResult.OK) 
{ 
    this.Color = preferenceForm.UserSelectedColor; 
    //etc... 
} 

メインフォームからデリゲートを送信し、適切な変更を加えてプリファレンスフォームにコールします。

class FormSettings 
{ 
    object Color {get, set} 
} 


class MainForm 
{ 
    ... 

    void ChangeSettings(FormSettings newSettings) 
    { ... } 

    void EditPreferences_Click(...) 
    { 
     ... 

     EditPreferencesForm editPreferences = new EditPreferencesForm(this.ChangeSettings) 
     editPreferences.ShowDialog(); 
    }  
} 

class EditPreferencesForm 
{ 
    ... 
    ChangeSettingsDelegate changeSettings; 
    FormSettings formSettings; 

    void OkButton_Click(...) 
    { 
      changeSettings(formSettings); 
    } 
} 
0

メインフォームは、「編集」 - >「環境設定」メニューを含むフォームでもあります。そう、あなたは好みが閉じを形成する際に好みのフォームがメインフォーム、fire off an eventから生成されていない場合は、コード

// This is the event handler in the main form 
private void mnuEditPreferencesClicked... 
{ 
    FrmPreferences frmPreferences = new FrmPreferences(); 
    frmPreferences.ShowDialog(this); 
    // Preferences saved, implement changes to main form here 
} 

に正しい時点ですでにあり、持っている場合は、メインフォームは、イベントをそのように扱います。

関連する問題