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文を使ってしまった(ぉ
-----
準備の項を追加しました。