[MLTR11137]セルのInputScopeを設定した時、最初のキーが入力されないことがある
対象製品
MultiRow for Windows Forms 8.0J
詳細
以下の条件を満たす場合、セルに入力する最初のキーの値が入力されません。
・セルのInputScopeプロパティにHiragana、KatakanaFullWidthまたはKatakanaHalfWidthが設定されている。
・GcMultiRow.EditModeプロパティにEditOnKeystrokeOrShortcutKeyが設定されている。
例えば、InputScopeプロパティにHiraganaが設定されているセルに対して「KA」と入力すると、最初の「K」が入力されないため「か」ではなく「あ」が入力されます。
・セルのInputScopeプロパティにHiragana、KatakanaFullWidthまたはKatakanaHalfWidthが設定されている。
・GcMultiRow.EditModeプロパティにEditOnKeystrokeOrShortcutKeyが設定されている。
例えば、InputScopeプロパティにHiraganaが設定されているセルに対して「KA」と入力すると、最初の「K」が入力されないため「か」ではなく「あ」が入力されます。
回避方法
GcMultiRowのPreviewKeyDownイベントに次のようなコードを記述することで回避することができます。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Private Sub GcMultiRow1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles GcMultiRow1.PreviewKeyDown
' セルの編集を開始する
Dim grid As GcMultiRow = sender
If Not grid.IsCurrentCellInEditMode AndAlso e.KeyData = Keys.ProcessKey Then
grid.BeginEdit(True)
End If
End Sub
[C#]
using GrapeCity.Win.MultiRow;
private void gcMultiRow1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
// セルの編集を開始する
GcMultiRow grid = sender as GcMultiRow;
if (!grid.IsCurrentCellInEditMode && e.KeyData == Keys.ProcessKey)
{
grid.BeginEdit(true);
}
}
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Private Sub GcMultiRow1_PreviewKeyDown(sender As Object, e As PreviewKeyDownEventArgs) Handles GcMultiRow1.PreviewKeyDown
' セルの編集を開始する
Dim grid As GcMultiRow = sender
If Not grid.IsCurrentCellInEditMode AndAlso e.KeyData = Keys.ProcessKey Then
grid.BeginEdit(True)
End If
End Sub
[C#]
using GrapeCity.Win.MultiRow;
private void gcMultiRow1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
// セルの編集を開始する
GcMultiRow grid = sender as GcMultiRow;
if (!grid.IsCurrentCellInEditMode && e.KeyData == Keys.ProcessKey)
{
grid.BeginEdit(true);
}
}