VB.NETのコントロールのTagプロパティについて
VB.NETのコントロールには「Tag」というプロパティがあります。この「Tag」ですが動作的には何もしないプロパティです。
何もしないプロパティは変に思われる方がいるかもしれませんが、要は何に使ってもよいと言うことです。
「Tag」プロパティはObject型として実装されていますので、何を格納しても良いことになります。
String型でもInteger型でもコンロールでも、または構造体(Struct型)でもクラスでもOKです。
■TextBoxでの例
以下は、フォーカス取得時に現在のTextプロパティの内容をTagプロパティに退避し、KeyUpイベント時の「ESC」キー押下に反応し Tagに退避してあった内容をTextに再設定し、初期値の再表示を行う様に動作するソースです。
■構造体を使った例
以下は、フォーカス取得時に構造体を宣言しその内容を初期化してTagプロパティに退避します。 KeyUpイベント時の「ESC」キー押下に反応しTagに退避してあった構造体の内容の「S1」をTextに再設定し、 「↑」キー押下に場合には構造体の内容の「S2」をTextに再設定します。
■クラスを使った例
構造体を使った例をクラスに置き換えた例で、内容は構造体の場合とほぼ同様のものです。 この例はあまりプログラム的には、毎回EnterイベントでクラスをNewしているところが良くない感じはしますが、 あくまでTagの使用例のためです。
コメント