可視領域外のComboBoxCellにショートカットキーでフォーカスを移動すると例外が発生する

文書番号 : 28244     文書種別 : 不具合     最終更新日 : 2009/11/26
文書を印刷する
対象製品
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);
キーワード
MLTR07505

この文書は、以前は次のバグレポートIDで公開されていました : 8191