キャラクタボックスコントロールは、Format プロパティにより書式を設定することで入力可能な文字種を制限することができます。また、AutoConvert プロパティを使用して指定の書式に自動的に変換することも可能です。
キャラクタボックスコントロールに設定可能な文字種等の詳細については、「書式の設定」で解説します。
AcceptsCrLf プロパティを使用してクリップボードへ改行を含む文字列をコピー、または貼り付けた場合の改行コードの扱いを設定できます。AcceptsCrLf プロパティは、CrLfMode 列挙体を使用して次の値を設定できます。
AcceptsCrLfの値 |
説明 |
NoControl |
改行コードはそのままでコピー、貼り付けを行います。 |
Filter |
全ての改行コードを削除しコピー、貼り付けを行います。 |
Cut |
最初の改行コード以降の文字列を削除します。標準コントロールと同じ動作です。 |
Value プロパティを使えば、リテラル文字とプロンプト文字を除いたコントロール内の文字列を取得または設定できます。たとえば、Text プロパティに「〒981-3205」が設定されているときには、Value プロパティの値は「9813205」となります。
Value プロパティが変更されると、その変更はText プロパティにも適用されます。また、ValueIsFull プロパティによって、すべてのフィールドに値が入力されているかどうかを確認することが可能です。
クリップボードにリテラル文字を含まない値を渡すには、ClipContent プロパティとSelectedText プロパティを使用します。ClipContent プロパティで制御できるのは、SelectedText プロパティの値のみなので、以下のプロパティの値をクリップボードに設定した場合は、ClipContent プロパティの設定は無効になります。なお、プロンプト文字列は、ClipContent プロパティの設定に関わらず常にクリップボードに渡されます。
次のサンプルコードは、ClipContent プロパティを使って、リテラル文字列を省いた文字列をクリップボードにコピーする方法を示します。
Imports GrapeCity.Win.Editors
' マス目をクリアします。
GcCharMask1.CharBoxes.Clear()
' 書式を設定します。
GcCharMask1.Format = "9"
' 郵便番号用のマス目を設定します。
GcCharMask1.CharBoxes.Add(New LiteralBox("〒"))
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.CharBoxes.Add(New SeparatorBox())
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.CharBoxes.Add(New InputBox())
GcCharMask1.Value = "9813205"
' コントロールに値を設定して、クリップボードにコピーします。
GcCharMask1.ClipContent = ClipContent.ExcludeLiterals
GcCharMask1.SelectionStart = 0
GcCharMask1.SelectionLength = GcCharMask1.Text.Length
Clipboard.SetDataObject(GcCharMask1.SelectedText)
' クリップボードのデータを取得して確認します。
Dim cbData As IDataObject = Clipboard.GetDataObject()
Label1.Text = cbData.GetData(DataFormats.Text)
using GrapeCity.Win.Editors;
// マス目をクリアします。
gcCharMask1.CharBoxes.Clear();
// 書式を設定します。
gcCharMask1.Format = "9";
// 郵便番号用のマス目を設定します。
gcCharMask1.CharBoxes.Add(new LiteralBox("〒"));
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.CharBoxes.Add(new SeparatorBox());
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.CharBoxes.Add(new InputBox());
gcCharMask1.Value = "9813205";
// コントロールに値を設定して、クリップボードにコピーします。
gcCharMask1.ClipContent = ClipContent.ExcludeLiterals;
gcCharMask1.SelectionStart = 0;
gcCharMask1.SelectionLength = gcCharMask1.Text.Length;
Clipboard.SetDataObject(gcCharMask1.SelectedText);
// クリップボードのデータを取得して確認します。
IDataObject cbData = Clipboard.GetDataObject();
label1.Text = cbData.GetData(DataFormats.Text).ToString();