お世話になります。
VSでC#を使ってWindowsコンソールアプリケーションを作っています。
そのアプリの設定画面なのですが、複数のテキストボックスやラジオボタン等のコントロールがあります。
その画面には「設定を適用する」ボタンがあり、これを押さないと設定が保存されないようになっています。なので、設定を変更したにもかかわらず、このボタンが押されなかった場合、アプリを終了するときなどに「設定が保存されていませんが本当に終了してよろしいですか?」といったダイアログボックスを出したいと思っています。
各々が変更されたかどうかを確認するためにはたとえばTextBoxならTextChangedイベントがあり、それを見れば変更されたかどうかがわかると思います。
ですが、すべてのコントロールで
C#
1 private bool bChanged = false; //変更された場合はフラグがTrue 2 private void textBox_TextChanged(object sender, EventArgs e) 3 { 4 bChanged = true; 5 } 6 7 private void Form_closing(略){ 8 if(bChanged){ 9 DialogResult re = MessageBox.Show("本当に終了してもよいですか?",(略)); 10 } 11 }
などとするのは少々面倒ですし、bChangedフラグを書き忘れればチェック漏れにもなります(もちろんそんなことがあってはいけないのですが・・・)
一応すべてのコントロールはGroupBoxの上に配置されているので、GroupBoxに対してまとめて監視をできたりしないかな、と思ったのですが・・・
よろしくお願いいたします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/19 21:59
2015/11/20 06:07