Imports Infragistics.Win.UltraWinMaskedEdit
各文字が特定の入力タイプ(US スタイルの電話番号 "(316) 555-1212" など)である、決まった文字数の入力を格納するセルへのユーザー入力は、WinGrid の MaskInput 機能によって書式化するのが最善です。
US スタイルの社会保険番号 "--###" はどのように書式化するのですか?
US スタイルの電話番号 "(###)-###-####" はどのように書式化するのですか?
2 文字の先行英文字、ダッシュ、4 文字の数字、ダッシュ、2 文字の終了英文字からなる部品番号はどのように書式化するのですか?
ユーザー入力のプロンプトと書式化は、UltraWinGrid の MaskInput プロパティにリテラルおよび入力文字の位置を示すマスクを設定することで実行できます。
UltraWinGrid の MaskInput 機能に関連するプロパティは、以下のとおりです。
MaskClipMode - データ マスキングが有効なときに、列のセル値をどのようにクリップボードにコピーするのかを決める値を返すか設定します。
MaskDataMode - データ マスキングが有効なときに、データ ソースによって列のセル値をどのように格納するのかを決める値を返すか設定します。
MaskDisplayMode - セルが編集モードでなく、データ マスキングが有効なときに、セル値をどのように表示するのかを決める値を返すか設定します。
MaskInput - セルの入力マスクを設定します。MaskInput の作成に使用する文字は以下のとおりです。
MaskLiteralsAppearance - セルで MaskInput が設定されている場合、または UltraMaskedEdit エレメントを使用している場合、編集モード時にこの外観がリテラル文字に適用されます。
PadChar - マスクを使用したテキストを書式化するのに使用する埋め込み文字を決めます。
PromptChar - マスク入力時に使用されるプロンプト文字を設定する値を設定します。
サンプル プロジェクトは 2 列を表示します。[電話番号] 列はマスク "() -#" で書式化されます。[部品番号] 列はマスク "AA-#-AA" で書式化されます。
コードの記述を開始する前にコード ビハインドに使用/インポートのディレクティブを配置します。そうすれば、メンバは完全に記述された名前を常に入力する必要がなくなります。
Visual Basic の場合:
Imports Infragistics.Win.UltraWinMaskedEdit
C# の場合:
using Infragistics.Win.UltraWinMaskedEdit;
UltraGrid1.InitializeLayout — [電話番号] 列の MaskInput プロパティには電話番号マスクが設定されます。MaskDataMode には、グリッドが書式を数値データベース フィールドにセットしないような値が設定されます。MaskClipMode には IncludeBoth が設定されるので、ユーザーがセルに対してコピー操作を行うと、クリップボード上のデータに書式が適用されます。MaskDisplayMode には IncludeBoth が設定されるので、セルはマスクされて表示されます。
Visual Basic の場合:
Private Sub UltraGrid1_InitializeLayout(ByVal sender As Object, _ ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) _ Handles UltraGrid1.InitializeLayout e.Layout.Bands(0).Columns("Phone").MaskInput = "(###) ###-####" e.Layout.Bands(0).Columns("Phone").MaskDataMode = MaskMode.Raw e.Layout.Bands(0).Columns("Phone").MaskClipMode = MaskMode.IncludeBoth e.Layout.Bands(0).Columns("Phone").MaskDisplayMode = MaskMode.IncludeBoth End Sub
C# の場合:
private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { e.Layout.Bands[0].Columns["Phone"].MaskInput = "(###) ###-####"; e.Layout.Bands[0].Columns["Phone"].MaskDataMode = MaskMode.Raw; e.Layout.Bands[0].Columns["Phone"].MaskClipMode = MaskMode.IncludeBoth; e.Layout.Bands[0].Columns["Phone"].MaskDisplayMode = MaskMode.IncludeBoth; }
このプロジェクトは Mask プロパティを使用して、表示用の列情報やクリップボード、データベース、ユーザー入力などを書式化する方法を示しています。また、データ/クリップボード/表示それぞれの各モードが有する多機能性についても説明しているので、データを書式あり、なしで表示できます。