0

私は2つのフォームを持っています。1つはメインフォーム(form1)で、もう1つはボタンを押すと呼び出されます(form2)。

ボタンを押すと、form2 が表示され、いくつかのチェックボックスとコンボボックスが含まれています。

私の質問は、チェックボックスの状態とコンボボックスの選択を保存または保存して、form2 を閉じた後に form1 でそれらを使用 (状態/選択を確認) できるようにするにはどうすればよいですか?

基本的な例を次に示します。

Form2:

--I click on checkbox and the state changes:

checkbox1.Checked = true;

Form1:

private void button1_Click(object sender, EventArgs e)
{
if (checkbox1.Checked == true)
{
MessageBox.Show("Checkbox on form2 is checked")
}
}

前もって感謝します!

4

2 に答える 2

1

データバインディングとオブジェクトを使用して受け渡します。次の例は、何も静的にすることなくこれを実現する方法を示しています。これを行うと、値が結合されるためです。 state.IsChecked = false; Form2 のチェックボックスもオフにします。

グローバル変数を追加しないでください。それは、発生するのを待っている大きな苦痛です。

class Form1: Form
{
    private State state = new State();

    public Form1()
    {
        Load += HandleLoad;
    }

    public HandleLoad(object sender, EventArgs e)
    { 
        label1.DataBindings.Add("Text", state, "IsChecked"); // or just query state.IsChecked
    }
    public void someEvent_Handler()
    {
        Form2 form2 = new Form2();
        form2.Bind(state);
        form2.Show();
    }
}

class Form2: Form
{
    public void Bind(State state)
    {
        checkBox1.DataBindings.Add("Checked", state, "IsChecked");
    }
}

class State
{
    public bool IsChecked {get;set;}
}
于 2013-09-11T12:33:10.113 に答える