PowerTools InputMan for Windows Forms 8.0J > InputManの使い方 > ソフトキーボードコンポーネント > 表示とキーレイアウト |
ここでは、ソフトキーボードの表示方法とキーレイアウトについて解説します。
ソフトキーボードコンポーネントをフォームに配置すると、入力コントロールのプロパティグリッドにSetDefaultKeyboardLayout メソッドと SetKeyboardShowingMode メソッドが それぞれ「DefaultKeyboardLayout プロパティ」と「KeyboardShowingMode プロパティ」として追加されます。
これらのプロパティを使用して初期表示時のキーレイアウトと、ソフトキーボードの表示方法を設定することができます。これらの詳細や設定内容については次項以降で解説しています。
ソフトキーボードコンポーネントは、以下のキーレイアウトを提供しています。
上記それぞれのレイアウトには、[半角]または[全角]キー(かなレイアウトは[かな][カナ][カナ]キー)が搭載され、このキーの押下により半角や全角の切り替えが行われます。 また、下部のレイアウトの切り替えキーにより、レイアウト表示を切り替えることができます。かなキーレイアウトを使用する時、文字種(ひらがな/半角カタカナ/全角カタカナ)が切り替わると、キーに表示される文字も文字種に合わせて変更されます。
下図は、アルファベットレイアウトで全角入力が有効になっている状態です。
以上のように、キーレイアウトはユーザー操作により自由に切り替えられますが、 SetDefaultKeyboardLayout メソッドを使用して、ソフトキーボードの初期表示時のキーレイアウトを指定することができます。キーレイアウトは、SoftKeyboardLayout 列挙体を使用し以下の値を設定できます。
SoftKeyboardLayoutの値 | 説明 |
---|---|
AlphabetFullWidth | 全角アルファベット |
AlphabetHalfWidth | 半角アルファベット |
Hiragana | ひらがな |
KatakanaFullWidth | 全角カタカナ |
KatakanaHalfWidth | 半角カタカナ |
NumericFullWidth | 全角数字 |
NumericHalfWidth | 半角数字 |
SymbolFullWidth | 全角記号 |
SymbolHalfWidth | 半角記号 |
SetDefaultKeyboardLayout メソッドによる明示的な既定キーレイアウトを設定しない場合、キーボードの初期レイアウトは、GcSoftKeyboard クラスのKeyboardLayout プロパティの設定が適用されます。 既定値はSoftKeyboardLayout.AlphabetHalfWidth です。
ひらがな、半角/全角カタカナを入力するかなキーレイアウトには、フリック入力にも対応した12キー配置と、五十音配置の2つのレイアウトが用意されています。
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 です。
入力コントロールに対しての位置を指定できます。位置の指定にはDropDownDirection プロパティに、DropDownDirection 型の値を設定します。設定可能な位置は下図の通りで、既定値はDropDownDirection.Default です。
スクリーンに対しての位置を指定できます。位置の指定にはPopupPosition プロパティに、SoftKeyboardPopupPosition 型の値を設定します。設定可能な位置は下図のとおりで、既定値はSoftKeyboardPopupPosition.BottomCenter です。
次のサンプルコードは、ソフトキーボードをコントロールの左側に表示する方法を示します。
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の設定にあわせてソフトキーボードのサイズを拡大するには、HighDPIScaleModeプロパティをSoftKeyboardHighDPIScaleMode.ScaleWithDPIRatioに設定します。
また、Scaleプロパティにより設定された拡大倍率は、HighDPIScaleModeプロパティで設定された結果を基にソフトキーボードのサイズを拡大します。