ユーザーコントロールでのEnum型プロパティ
- 題名: ユーザーコントロールでのEnum型プロパティ
- 著者: java.lang.Exception
- 日時: 2004/06/03 11:28:12
- ID: 4266
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ユーザーコントロールでのEnum型プロパティ
- 著者: 管理人
- URL: http://dobon.net
- 日時: 2004/06/07 3:48:02
- ID: 4312
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ユーザーコントロールでのEnum型プロパティ
- 著者: java.lang.Exception
- 日時: 2004/06/07 9:40:24
- ID: 4319
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
毎度お世話になっております。
どうか、ユーザーコントロールのプロパティについて
精通されている方の知恵を拝借させて下さい。
現在、会社でのプロジェクトで共通ライブラリを担当しております。
入力文字を規制するために、自作のExTextBoxクラスモジュールを実装し、
入力許可文字を設定する自作のプロパティなどを設けていました。
しかしながら、クラスモジュールでのプロパティの実装は、
コード上で何かしろ指定するなどしなければなりません。
例えば、現在はカスタム可能な関数などで、
' /* 許可文字取得関数 */ (Permは許可文字専用の構造体)
Private Function GetPermString(
Select Case nControlName
' /* 数字のみ許可する */
Case "txtHoge", "txtSore"
Return Perm.NumberOnly
' /* ローマ字のみ許可する */
Case "txtKore"
Return Perm.RomaAll
' /* 特殊なフィールドなので、直接定義 */
Case "txtKubun"
Return "1248"
End Select
End Function
などどして、プログラムごとにそのコントロール名を記述して、
入力許可文字を取得し、それを共通ライブラリでエラーチェックしています。
ですが、コード上でそういった属性を記述すると、
対応を見る際にコードとデザイナを行き来することになります。
プログラマ側としては画面設計をしている時に、プロパティを指定したいものです。
そこで、TextBoxを継承したユーザーコントロールを使用して、
Typeプロパティを追加することにしました。
画面デザイナのプロパティウィンドウでコンボによるリスト選択を行うため・・・
Public Class ExTextBox
Inherits System.Windows.Forms.TextBox
' /* 許可文字列挙体 */
Public Enum EnumType As Byte
Free = 0
Number = 1
RomaAll = 2
Kana = 4
(中略)
End Enum
' /* Typeプロパティの結果を格納 */
Private _Type As String
' /* ExTextBox::Typeプロパティ */
Public Property Type() As EnumType
Get
' /* 許可文字から対応する許可文字列挙体を取得する関数 */
Return GetTypeSelection(_Type)
End Get
Set(ByVal uType As EnumType)
' /* 許可文字列挙体から対応する許可文字を取得する関数 */
_Type = SetTypeSelection(uType)
End Set
End Property
End Class
としているのですが、Enum列挙体を使うと今度は
『プログラマが独自に文字列を書き込むことができない』ということになります。
プロパティウィンドウで、コンボによる規定のプロパティを選択でき、
かつプログラマが独自に文字列を設定できるようにできないのでしょうか?
# 仕様云々は既に決定済みで後戻りができません・・・