3

.NET CF Framework を使用してアプリケーションを構築していますが、ユーザーにカスタム ダイアログ ボックスを表示したい状況がありました。

私の解決策は、選択肢用のラジオボタンとボタンを備えた単純なフォームを作成することでした。ボタンをクリックすると、選択したラジオ ボタンの値がパブリック プロパティに保存され、フォームが閉じます。

UserControl は、フォームで ShowDialog を呼び出した後、パブリック プロパティを調べて、ユーザーが選択したオプションを確認します。

これは完璧に機能しました。これが悪い習慣なのか、どうにかしてこれを行うことで自分自身を困らせるのではないかと思っています。UserControl がフォームを作成する必要があるのは奇妙に思えます。

UserControl 内からカスタム ダイアログ ボックスを作成するためのより良い方法はありますか?

4

2 に答える 2

1

絶対にそれは悪いことではありません。MessageBox.Show()これは、基本的にUserControlから呼び出すのと同じです。

そして、はい、パブリックプロパティとして結果にアクセスすることはそれを行う方法です。

これはダイアログになると思いますか?複数の「終了」オプション(OK、キャンセルなど)がある場合は、 DialogResultの使用を検討する必要があります。

于 2012-11-09T13:44:42.783 に答える
1

簡単な答え: いいえ、問題はありません。

長い答え: アプリケーションが成長するにつれて、フォームを UserControl から直接開くなどの操作を行うと、スパゲッティのようなコードが得られる場合があります。数千行のコードを超えるアプリケーションを作成する場合、Form および UserControl コード ビハインド ファイルは通常、まったく空でなければなりません。ビジネス ロジックを含めないでください。できれば、UI ロジックも含めないでください。これを実現する方法として、パッシブ ビューなどのパターンを参照してください。

于 2012-11-09T13:52:02.050 に答える