MESCIUS MultiRow for Windows Forms 12.0J
タッチキーボード

MultiRowではタッチキーボードの表示/非表示の切り替えや、表示するキーボードの種類を指定できます。ここでは、タッチキーボードの制御方法について解説します。

表示/非表示の切り替え

メソッドによる表示/非表示の切り替え

ShowTouchKeyboardメソッドおよびHideTouchKeyboardメソッドでタッチキーボードの表示/非表示を切り替えることができます。

例えば、CellBeginEditイベントとCellEndEditイベントでShowTouchKeyboardメソッドとHideTouchKeyboardメソッドを使用すれば、セルの編集開始/終了にあわせて、タッチキーボードの表示/非表示を切り替えることができます。    

Private Sub GcMultiRow1_CellBeginEdit(sender As Object, e As GrapeCity.Win.MultiRow.CellBeginEditEventArgs) Handles GcMultiRow1.CellBeginEdit
    ' セルの編集開始時にタッチキーボードを表示します。 
    GcMultiRow1.ShowTouchKeyboard()
End Sub

Private Sub GcMultiRow1_CellEndEdit(sender As Object, e As GrapeCity.Win.MultiRow.CellEndEditEventArgs) Handles GcMultiRow1.CellEndEdit
    ' セルの編集終了時にタッチキーボードを非表示にします。 
    GcMultiRow1.HideTouchKeyboard()
End Sub
private void gcMultiRow1_CellBeginEdit(object sender, GrapeCity.Win.MultiRow.CellBeginEditEventArgs e)
{
    // セルの編集開始時にタッチキーボードを表示します。
    gcMultiRow1.ShowTouchKeyboard();
}

private void gcMultiRow1_CellEndEdit(object sender, GrapeCity.Win.MultiRow.CellEndEditEventArgs e)
{
    // セルの編集終了時にタッチキーボードを非表示にします。
    gcMultiRow1.HideTouchKeyboard();
}

ドロップダウン表示時の自動非表示

InputManCellでは、DropDownクラスのAutoHideTouchKeyboardプロパティを使用すると、ドロップダウン表示時にタッチキーボードを自動的に非表示にすることができます。

AutoHideTouchKeyboardの値 説明
AutoHide ドロップダウンオブジェクトが表示されたとき、タッチキーボードを非表示にします。
HideAndReshow ドロップダウンオブジェクトが表示されたとき、タッチキーボードを非表示にします。その後、ドロップダウンオブジェクトが閉じたとき、タッチキーボードを再表示します。
None タッチキーボードを閉じません。ドロップダウンオブジェクトとタッチキーボード両方を表示します。

次のサンプルコードは、GcNumberCellに対し、ドロップダウンカレンダーの表示・非表示に伴い、タッチキーボードを非表示にし、再度表示します。

Imports GrapeCity.Win.MultiRow
Imports InputManCell = GrapeCity.Win.MultiRow.InputMan

Dim GcDateTimeCell1 As New InputManCell.GcDateTimeCell()
GcDateTimeCell1.DropDown.AutoHideTouchKeyboard = GrapeCity.Win.Editors.AutoHideTouchKeyboard.HideAndReshow

GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcDateTimeCell1})
GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow;
using InputManCell = GrapeCity.Win.MultiRow.InputMan;

InputManCell.GcDateTimeCell gcDateTimeCell1 = new InputManCell.GcDateTimeCell();
gcDateTimeCell1.DropDown.AutoHideTouchKeyboard = GrapeCity.Win.Editors.AutoHideTouchKeyboard.HideAndReshow;

gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcDateTimeCell1 });
gcMultiRow1.RowCount = 10;
キーボードの種類の設定
CellStyle.InputScopeプロパティを使用すると、表示するタッチキーボードの種類を設定できます。




次のコードは、セルごとに異なるタッチキーボードを表示します。

Imports GrapeCity.Win.MultiRow

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim TextBoxCell1 = New TextBoxCell()
    TextBoxCell1.Style.InputScope = InputScopeNameValue.Hiragana

    Dim TextBoxCell2 = New TextBoxCell()
    TextBoxCell2.Style.InputScope = InputScopeNameValue.AlphanumericHalfWidth

    Dim NumericUpDownCell1 = New NumericUpDownCell()
    NumericUpDownCell1.Style.InputScope = InputScopeNameValue.Number

    GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {TextBoxCell1, TextBoxCell2, NumericUpDownCell1})
    GcMultiRow1.RowCount = 10
End Sub

Private Sub GcMultiRow1_CellBeginEdit(sender As Object, e As GrapeCity.Win.MultiRow.CellBeginEditEventArgs) Handles GcMultiRow1.CellBeginEdit
    ' セルの編集開始時にタッチキーボードを表示します。 
    GcMultiRow1.ShowTouchKeyboard()
End Sub

Private Sub GcMultiRow1_CellEndEdit(sender As Object, e As GrapeCity.Win.MultiRow.CellEndEditEventArgs) Handles GcMultiRow1.CellEndEdit
    ' セルの編集終了時にタッチキーボードを非表示にします。 
    GcMultiRow1.HideTouchKeyboard()
End Sub
using GrapeCity.Win.MultiRow;

private void Form1_Load(object sender, EventArgs e)
{
    TextBoxCell textBoxCell1 = new TextBoxCell();
    textBoxCell1.Style.InputScope = InputScopeNameValue.Hiragana;

    TextBoxCell textBoxCell2 = new TextBoxCell();
    textBoxCell2.Style.InputScope = InputScopeNameValue.AlphanumericHalfWidth;

    NumericUpDownCell numericUpDownCell1 = new NumericUpDownCell();
    numericUpDownCell1.Style.InputScope = InputScopeNameValue.Number;

    gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { textBoxCell1, textBoxCell2, numericUpDownCell1 });
    gcMultiRow1.RowCount = 10;
}

private void gcMultiRow1_CellBeginEdit(object sender, GrapeCity.Win.MultiRow.CellBeginEditEventArgs e)
{
    // セルの編集開始時にタッチキーボードを表示します。
    gcMultiRow1.ShowTouchKeyboard();
}

private void gcMultiRow1_CellEndEdit(object sender, GrapeCity.Win.MultiRow.CellEndEditEventArgs e)
{
    // セルの編集終了時にタッチキーボードを非表示にします。
    gcMultiRow1.HideTouchKeyboard();
}
  • InputScopeプロパティには制限事項や注意点があります。詳細は「IME モード −InputScope プロパティの使い方」を参照してください。
キーボード表示時の自動スクロール
MultiRowでは、タッチキーボードの表示で編集中のセルが隠れてしまう場合、編集中のセルをタッチキーボードで隠れない領域に自動でスクロールさせることができます。この機能はAutoScrollWhenKeyboardShowingプロパティにTrueを設定することで有効になります。
GcMultiRow1.AutoScrollWhenKeyboardShowing = True
gcMultiRow1.AutoScrollWhenKeyboardShowing = true;
関連トピック

 

 


© MESCIUS inc. All rights reserved.