私は、カレンダー/スケジューリングインターフェイスをユーザーに提示するデータベース駆動のマルチユーザーvb.net WinFormsアプリケーションを持っています。ユーザーは、カレンダー上の複数の予定を同時に編集することができ、したがって、「予定の編集」フォームの1つ、多くのインスタンスを開くことはできません。WinForms - 非モーダルフォームイベントへの "サブスクリプション"を設定するには?
私はさまざまな検索機能を備えていますが、現在編集中のものも含めて、イベントのリストを表示することがあります。これらのイベントの1つが編集、移動、または削除された場合、検索テーブルは古くなります。
検索機能を開くと、開いているすべての[予定の編集]フォームで生成されたイベントに「購読する」ことができます。次に、検索インタフェースに表示された予定が変更/削除されると、検索テーブル自体が更新されます。
有効にするには、vb.netにいくつかのベストプラクティスまたはメカニズムがありますか?
具体的な懸念事項:
- 私は検索インターフェイスがすでに開いている間
- 追加「の編集予定」フォームが開くことがあり、開いているすべての「編集予定の」フォームのトラックをリストまたは維持するための方法が必要です。
- 検索インターフェイスを閉じると、これらのビジュアルな基本イベントの購読を解除して、メモリリークや予期しない動作がないようにする必要があります。
明確化:私はこれを処理する適切な方法は、「FormClosed」または「編集予定」フォームから生成されたイベントを処理することであると考えています。このビジュアルベーシックイベントは、(潜在的に)変更が発生したことを購読フォームに通知できるように、何らかの方法で「処理」する必要があります。
ではなく、フォーム・セントリックアプリ、クラス – Plutonix
私は、この文脈で何を意味するのかわからないを考えてみましょう。私の理解は、すべてのフォームがクラスであるということです。私の問題を解決するためにどのようにクラスを使用できますか? –
はい、すべてのフォームはクラスです* *その専門はユーザーと対話しています。さまざまなフォームイベントを購読する何か(何も言及していない)ではなく、アポイントメントクラスにはデータとそれに作用するロジックが含まれています。それが必要ならば、 "foo"を "bar"に変更するようにForm87に指示することができます。 – Plutonix