MESCIUS InputMan for Windows Forms 12.0J
表示とキーレイアウト

ここでは、ソフトキーボードの表示方法とキーレイアウトについて解説します。

設定の概要

ソフトキーボードコンポーネントをフォームに配置すると、入力コントロールのプロパティグリッドにSetDefaultKeyboardLayout メソッドと SetKeyboardShowingMode メソッドが それぞれ「DefaultKeyboardLayout プロパティ」と「KeyboardShowingMode プロパティ」として追加されます。

これらのプロパティを使用して初期表示時のキーレイアウトと、ソフトキーボードの表示方法を設定することができます。これらの詳細や設定内容については次項以降で解説しています。

キーレイアウト

ソフトキーボードコンポーネントは、以下のキーレイアウトを提供しています。

上記それぞれのレイアウトには、[半角]または[全角]キー(かなレイアウトは[かな][カナ][カナ]キー)が搭載され、このキーの押下により半角や全角の切り替えが行われます。 また、下部のレイアウトの切り替えキーにより、レイアウト表示を切り替えることができます。かなキーレイアウトを使用する時、文字種(ひらがな/半角カタカナ/全角カタカナ)が切り替わると、キーに表示される文字も文字種に合わせて変更されます。

下図は、アルファベットレイアウトで全角入力が有効になっている状態です。

以上のように、キーレイアウトはユーザー操作により自由に切り替えられますが、 SetDefaultKeyboardLayout メソッドを使用して、ソフトキーボードの初期表示時のキーレイアウトを指定することができます。キーレイアウトは、SoftKeyboardLayout 列挙体を使用し以下の値を設定できます。

SoftKeyboardLayoutの値 説明
AlphabetFullWidth 全角アルファベット
AlphabetHalfWidth 半角アルファベット
Hiragana ひらがな
KatakanaFullWidth 全角カタカナ
KatakanaHalfWidth 半角カタカナ
NumericFullWidth 全角数字
NumericHalfWidth 半角数字
SymbolFullWidth 全角記号
SymbolHalfWidth 半角記号

SetDefaultKeyboardLayout メソッドによる明示的な既定キーレイアウトを設定しない場合、キーボードの初期レイアウトは、GcSoftKeyboard クラスのKeyboardLayout プロパティの設定が適用されます。 既定値はSoftKeyboardLayout.AlphabetHalfWidth です。

かなキーレイアウトの種類

ひらがな、半角/全角カタカナを入力するかなキーレイアウトには、フリック入力にも対応した12キー配置と、五十音配置の2つのレイアウトが用意されています。

12キー配置(左)と五十音配置(右)

12キー配置(左)と五十音配置(右)

かなのレイアウトを設定するには、GcSoftKeyboard クラスのKanaInputLayout プロパティを使用します。

次のサンプルコードは、テキストコントロールに表示する初期レイアウトを五十音配置のひらがなに設定する例です。

GcSoftKeyboard1.SetDefaultKeyboardLayout(GcTextBox1, GrapeCity.Win.Editors.SoftKeyboardLayout.Hiragana)
GcSoftKeyboard1.KanaInputLayout = GrapeCity.Win.Editors.SoftKeyboardKanaInputLayout.Syllabary
gcSoftKeyboard1.SetDefaultKeyboardLayout(gcTextBox1, GrapeCity.Win.Editors.SoftKeyboardLayout.Hiragana);
gcSoftKeyboard1.KanaInputLayout = GrapeCity.Win.Editors.SoftKeyboardKanaInputLayout.Syllabary;
ソフトキーボードの表示方法

SetKeyboardShowingMode メソッドあるいは、プロパティグリッドの「KeyboardShowingMode プロパティ」を使用して、ソフトキーボードの表示方法を設定します。ソフトキーボードの表示方法はSoftKeyboardShowingMode 列挙型で指定し、以下の二通りの表示方法が設定できます。

KeyboardShowingModeの値 説明
Automatic コントロールがフォーカスが取得したときに自動的に表示
Manual Show メソッドが実行されたときに表示

SoftKeyboardShowingMode.AutoMatic に設定すると、対象のコントロールがフォーカスを取得したときに自動的にソフトキーボードが表示され、 コントロールからフォーカスが移動するとソフトキーボードが非表示となります。

次のサンプルコードは、テキストコントロールと数値コントロールがフォーカスを取得したときにそれぞれ既定のキーレイアウトで自動的にソフトキーボードを表示する設定例です。

GcSoftKeyboard1.SetKeyboardShowingMode(GcTextBox1, GrapeCity.Win.Editors.SoftKeyboardShowingMode.Automatic)
GcSoftKeyboard1.SetDefaultKeyboardLayout(GcTextBox1, GrapeCity.Win.Editors.SoftKeyboardLayout.Hiragana)

GcSoftKeyboard1.SetKeyboardShowingMode(GcNumber1, GrapeCity.Win.Editors.SoftKeyboardShowingMode.Automatic)
GcSoftKeyboard1.SetDefaultKeyboardLayout(GcNumber1, GrapeCity.Win.Editors.SoftKeyboardLayout.NumericHalfWidth)
gcSoftKeyboard1.SetKeyboardShowingMode(gcTextBox1, GrapeCity.Win.Editors.SoftKeyboardShowingMode.Automatic);
gcSoftKeyboard1.SetDefaultKeyboardLayout(gcTextBox1, GrapeCity.Win.Editors.SoftKeyboardLayout.Hiragana);

gcSoftKeyboard1.SetKeyboardShowingMode(gcNumber1, GrapeCity.Win.Editors.SoftKeyboardShowingMode.Automatic);
gcSoftKeyboard1.SetDefaultKeyboardLayout(gcNumber1, GrapeCity.Win.Editors.SoftKeyboardLayout.NumericHalfWidth)

SoftKeyboardShowingMode.Manual に設定し、Show メソッドにより表示されたソフトキーボードは、エンドユーザーがキーボード右上のXボタンを押下するか、Hide メソッドを実行すると閉じられます。

次のサンプルコードは、Button1のクリックで標準のTextBox コントロールに対して全角アルファベットレイアウトのキーボードを表示し、フォーカスもTextBox コントロールに設定する例です。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    GcSoftKeyboard1.SetDefaultKeyboardLayout(GcTextBox1, GrapeCity.Win.Editors.SoftKeyboardLayout.AlphabetFullWidth)
    GcSoftKeyboard1.Show(GcTextBox1, True)
End Sub 
private void Button1_Click(object sender, EventArgs e)
{
    gcSoftKeyboard1.SetDefaultKeyboardLayout(gcTextBox1, GrapeCity.Win.Editors.SoftKeyboardLayout.AlphabetFullWidth);
    gcSoftKeyboard1.Show(gcTextBox1, true);
}

また、Show メソッドのパラメータにはthis(Visual Basic では Me)キーワードを使用でき、実行しているフォームに対してソフトキーボードを表示することができます。コントロール間のフォーカス移動に伴わず、ソフトキーボードを常に表示したい場合などはこの方法が便利です。 ただし、このときに各コントロールに対して既定のキーレイアウトを指定していても無効となります。

次のサンプルコードは、Button1のクリックで、フォーム全体に対してひらがなレイアウトのソフトキーボードを表示します。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    GcSoftKeyboard1.KeyboardLayout = GrapeCity.Win.Editors.SoftKeyboardLayout.Hiragana
    GcSoftKeyboard1.Show(Me)
End Sub
private void Button1_Click(object sender, EventArgs e)
{
        gcSoftKeyboard1.KeyboardLayout = GrapeCity.Win.Editors.SoftKeyboardLayout.Hiragana;
    gcSoftKeyboard1.Show(this);
}
表示位置

ソフトキーボードのヘッダ部分をドラッグすることで表示位置を変更することができますが、GcSoftKeyboard クラスのKeyboardPositioningMode プロパティを使用すると初期表示の位置を設定できます。 初期表示の位置は、コントロールまたはスクリーンに対してのいずれかを指定でき、SoftKeyboardPositioningMode 型で指定します。 KeyboardPositioningMode プロパティに設定できる値は次の通りで、既定値はSoftKeyboardPositioningMode.Popup です。

次のサンプルコードは、ソフトキーボードをコントロールの左側に表示する方法を示します。

GcSoftKeyboard1.KeyboardPositioningMode = GrapeCity.Win.Editors.SoftKeyboardPositioningMode.DropDown
GcSoftKeyboard1.DropDownDirection = GrapeCity.Win.Editors.DropDownDirection.Left
gcSoftKeyboard1.KeyboardPositioningMode = GrapeCity.Win.Editors.SoftKeyboardPositioningMode.DropDown; gcSoftKeyboard1.DropDownDirection = GrapeCity.Win.Editors.DropDownDirection.Left;
高DPI環境での表示

既定では、高DPI環境でソフトキーボードを表示すると、DPIの設定に関わらずソフトキーボードのサイズは自動的に拡大されません。DPIの設定にあわせてソフトキーボードのサイズを拡大するには、HighDPIScaleModeプロパティをSoftKeyboardHighDPIScaleMode.ScaleWithDPIRatioに設定します。

また、Scaleプロパティにより設定された拡大倍率は、HighDPIScaleModeプロパティで設定された結果を基にソフトキーボードのサイズを拡大します。

関連トピック

 

 


© MESCIUS inc. All rights reserved.