Form.CancelButtonをButtonコントロールに割り当てていてもMultiRowにフォーカスがあるとEscキーが無効になる

文書番号 : 38755     文書種別 : 不具合     登録日 : 2015/06/17     最終更新日 : 2016/04/28
文書を印刷する
対象製品
MultiRow for Windows Forms 7.0J
状況
修正済み
詳細
フォームのCancelButtonプロパティでキャンセルボタンを設定した場合、フォーカスがMultiRowコントロールにある状態でEscキーを押下してもフォームが閉じません。
回避方法
この問題はService Pack 4(v7.0.2016.0428)で修正されました。
不具合を修正した最新のサービスパックは、アップデートページ からダウンロードできます。

Service Pack 4より前のバージョンでは次の方法で回避可能です。

次の手順で示すように、IsInputKeyメソッドをオーバーライドしたGcMultiRow継承コントロールを使用します。

1.プロジェクトに新規のクラス(MyMultiRow)を追加して、下記のコードを記述する。
2.プロジェクトをビルドする。
3.ビルドで出来たMyMultiRowをフォームに追加して使用する。

[Visual Basic]
Public Class MyMultiRow
  Inherits GrapeCity.Win.MultiRow.GcMultiRow
  Protected Overrides Function IsInputKey(keyData As Keys) As Boolean
    If (keyData = Keys.Escape) Then
      Return False
    End If
    Return MyBase.IsInputKey(keyData)
  End Function
End Class

[C#]
class MyMultiRow : GrapeCity.Win.MultiRow.GcMultiRow
{
  protected override bool IsInputKey(Keys keyData)
  {
    if ((keyData == Keys.Escape))
    {
      return false;
    }
    return base.IsInputKey(keyData);
  }
}
キーワード
MLTR11162