チェックボックス、テキストボックスなど、多くのコントロールを備えたWinFormがあります。フォームを閉じるときに、変更が加えられたかどうか(チェックボックスの状態が変更されたか、テキストが変更されたかなど)を知りたいです。これを行うためのエレガントで短い方法はありますか(設計時に各コントロールのイベントを作成する以外に)?
ありがとう
チェックボックス、テキストボックスなど、多くのコントロールを備えたWinFormがあります。フォームを閉じるときに、変更が加えられたかどうか(チェックボックスの状態が変更されたか、テキストが変更されたかなど)を知りたいです。これを行うためのエレガントで短い方法はありますか(設計時に各コントロールのイベントを作成する以外に)?
ありがとう
ブール変数を宣言して、何かが変更されるたびにその値を変更することができます。
Public bChanges As Boolean = False
変更されたコントロール(たとえば、そのイベントで管理される):
bChanges = True
また、フォームを閉じるときに(後で存在させたい場合は、フォームクラスの外部で変数を宣言します)、その値を簡単に確認できます。
コントロールが変更されているかどうかを知るには、イベントを作成する必要があります。この目的でイベントをグループ化できます。
Handles Button1.Click, Button2.Click, Button3.Click
または、フォームコントロールを動的にループし、コントロールのタイプに応じて割り当てるメソッドを決定するイベントを作成できます。
For Each elem As Control in Me.Controls
AddHandler elem.TextChanged, AddressOf ChangedMethod
Next