メソッドによる表示/非表示の切り替え
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;