JIS X 0213で追加された文字や環境依存文字、あるいは絵文字の入力を制限できますか?

文書番号 : 40974     文書種別 : 技術情報     登録日 : 2017/08/25     最終更新日 : 2017/08/25
文書を印刷する
対象製品
InputMan for Windows Forms 10.0J
詳細
テキスト、マスク、コンボおよびマスクコンボコントロールや、検証コンポーネントを使用すると、数字やカナ、アルファベットや記号などのほかに、以下の文字に対して入力を制限することができます。
なお、文字の入力制限は、各コントロールの書式設定に該当するキーワードを設定することで実現します。
  • サロゲート ペア文字
  • 2バイト文字(サロゲート ペア文字を除いた全角文字)
  • JIS X 0208で構成された文字
  • Shift JIS(CP932)で構成された文字
  • IVS(Ideographic Variation Sequence)文字
JIS X 0208で構成された文字は、全角の記号、英数字、ひらがな、カタカナ、およびJIS第1水準、第2水準漢字で、ここに環境依存文字やサロゲートペア文字は含まれません。なお、この文字に該当するキーワードはIです。

Shift JISで構成された文字は、JIS X 0208で構成された文字に加え、半角の記号、英数字、カタカナや、Windowsの機種依存文字なども含んだ2バイト文字の集合です。該当するキーワードはMです。

なお、Windows 8のタッチキーボードで使用可能な絵文字は、JIS X 0208にもShift JISにも含まれないため、キーワードIやMの設定で入力を制限することができます。

テキストコントロールへ環境依存文字やサロゲートペア文字の入力以外の全角文字の入力を許可するには次のように設定します。

[Visual Basic]
GcTextBox.Format = "I"

[C#]
gcTextBox.Format = "I";

以下は、テキストコントロールにShift JISで構成された文字から半角カタカナのみ入力を制限する例です。

[Visual Basic]
GcTextBox.Format = "M^K"

[C#]
gcTextBox.Format = "M^K";

次のサンプルコードは、汎用検証コンポーネントを使用して標準のTextBoxコントロールに対し、全角文字のうちサロゲートペア文字が入力されるとエラーを検出する例です。

[Visual Basic]
Imports GrapeCity.Win.Editors

' 検証アイテムを作成します。
Dim CharFormat1 As New CharFormat()
' 全角文字のうちサロゲートペア文字の入力を禁止します。
CharFormat1.Format = "Z^T"
' エラーメッセージを設定します。
CharFormat1.InvalidMessage = "サロゲートペア文字の入力はできません。"

' TextBox1に作成した検証アイテムを設定   
GcCommonValidator1.GetValidateItems(TextBox1).AddRange(New Object() {CharFormat1})

[C#]
using GrapeCity.Win.Editors;

// 検証アイテムを作成します。
CharFormat charFormat1 = new CharFormat();
// 全角文字のうちサロゲートペア文字の入力を禁止します。
charFormat1.Format = "Z^T";
// エラーメッセージを設定します。
charFormat1.InvalidMessage = "サロゲートペア文字の入力はできません。";

// textBox1に作成した検証アイテムを設定します。
gcCommonValidator1.GetValidateItems(textBox1).AddRange(new object[] {charFormat1});

関連情報