C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 51 を表示中)
■28009 / )  Re[6]: チェックボックスに関して
□投稿者/ みきぬ (224回)-(2008/11/18(Tue) 18:32:26)
2008/11/18(Tue) 18:50:07 編集(投稿者)
それじゃあ私はさらに泥臭い、フラグ変数を使った方法でも示してみましょうか。

※準備※
・Form に、allCheckBox、bmpCheckBox、wmaCheckCox、jpgCheckBox を配置する
・allCheckBox の CheckedChanged イベントに allCheckBox_CheckedChanged を紐づける
・ほか3つの CheckBox の CheckedChanged イベントに otherCheckBox_CheckedChanged を紐づける

private bool isChanging = false;

private void allCheckBox_CheckedChanged(object sender, EventArgs e)
{
    if (isChanging)
    {
        // 別のイベント処理でチェック状態の変更中だから何もしない!
    }
    else
    {
        isChanging = true;
        bmpCheckBox.Checked = allCheckBox.Checked;
        wmaCheckCox.Checked = allCheckBox.Checked;
        jpgCheckBox.Checked = allCheckBox.Checked;
        isChanging = false;
    }
}

private void otherCheckBox_CheckedChanged(object sender, EventArgs e)
{
    if (isChanging)
    {
        // 別のイベント処理でチェック状態の変更中だから何もしない!
    }
    else
    {
        isChanging = true;
        allCheckBox.Checked = (bmpCheckBox.Checked && wmaCheckCox.Checked && jpgCheckBox.Checked);
        isChanging = false;
    }
}

# ついうっかり、巷で話題になった空のif文を使ってしまった(ぉ

-----
準備の項を追加しました。

返信 編集キー/


管理者用

- Child Tree -