可視領域外のComboBoxCellにショートカットキーでフォーカスを移動すると例外が発生する
対象製品
MultiRow for Windows Forms 5.0J
発生環境
v5.0.2009.0812 および以前のバージョン
状況
修正済み
詳細
ComboBoxCellがグリッドの現在の可視領域外に位置し、GcMultiRow.EditModeプロパティがEditOnEnterに設定されている時、Tabキーなどのショートカットキーでフォーカスを当該ComboBoxCellに移動すると、例外が発生します。
回避方法
この現象は MultiRow for Windows Forms 5.0J 修正版(v5.0.2009.1030) で修正されています。
または、GcMultiRow.EditModeプロパティをEditOnEnter以外に設定し、カスタムアクションにその動作を実装することで回避できます。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Public Class CustomAction
Implements IAction
Public Function CanExecute(ByVal target As GrapeCity.Win.MultiRow.GcMultiRow) As Boolean Implements GrapeCity.Win.MultiRow.IAction.CanExecute
Return True
End Function
Public ReadOnly Property DisplayName() As String Implements GrapeCity.Win.MultiRow.IAction.DisplayName
Get
Return Me.ToString()
End Get
End Property
Public Sub Execute(ByVal target As GrapeCity.Win.MultiRow.GcMultiRow) Implements GrapeCity.Win.MultiRow.IAction.Execute
SelectionActions.MoveToNextCell.Execute(target)
EditingActions.BeginEdit.Execute(target)
End Sub
End Class
' ショートカットキーの登録
GcMultiRow1.ShortcutKeyManager.Register(New CustomAction(), Keys.Enter)
GcMultiRow1.ShortcutKeyManager.Register(New CustomAction(), Keys.Tab)
[C#]
using GrapeCity.Win.MultiRow;
///
/// 独自のアクション
///
public class CustomAction : IAction
{
public bool CanExecute(GcMultiRow target)
{
return true;
}
public string DisplayName
{
get { return this.ToString(); }
}
public void Execute(GcMultiRow target)
{
SelectionActions.MoveToNextCell.Execute(target);
EditingActions.BeginEdit.Execute(target);
}
}
// ショートカットキーの登録
gcMultiRow1.ShortcutKeyManager.Register(new CustomAction(), Keys.Enter);
gcMultiRow1.ShortcutKeyManager.Register(new CustomAction(), Keys.Tab);
または、GcMultiRow.EditModeプロパティをEditOnEnter以外に設定し、カスタムアクションにその動作を実装することで回避できます。
[Visual Basic]
Imports GrapeCity.Win.MultiRow
Public Class CustomAction
Implements IAction
Public Function CanExecute(ByVal target As GrapeCity.Win.MultiRow.GcMultiRow) As Boolean Implements GrapeCity.Win.MultiRow.IAction.CanExecute
Return True
End Function
Public ReadOnly Property DisplayName() As String Implements GrapeCity.Win.MultiRow.IAction.DisplayName
Get
Return Me.ToString()
End Get
End Property
Public Sub Execute(ByVal target As GrapeCity.Win.MultiRow.GcMultiRow) Implements GrapeCity.Win.MultiRow.IAction.Execute
SelectionActions.MoveToNextCell.Execute(target)
EditingActions.BeginEdit.Execute(target)
End Sub
End Class
' ショートカットキーの登録
GcMultiRow1.ShortcutKeyManager.Register(New CustomAction(), Keys.Enter)
GcMultiRow1.ShortcutKeyManager.Register(New CustomAction(), Keys.Tab)
[C#]
using GrapeCity.Win.MultiRow;
///
/// 独自のアクション
///
public class CustomAction : IAction
{
public bool CanExecute(GcMultiRow target)
{
return true;
}
public string DisplayName
{
get { return this.ToString(); }
}
public void Execute(GcMultiRow target)
{
SelectionActions.MoveToNextCell.Execute(target);
EditingActions.BeginEdit.Execute(target);
}
}
// ショートカットキーの登録
gcMultiRow1.ShortcutKeyManager.Register(new CustomAction(), Keys.Enter);
gcMultiRow1.ShortcutKeyManager.Register(new CustomAction(), Keys.Tab);
キーワード
MLTR07505
この文書は、以前は次のバグレポートIDで公開されていました : 8191