0

クラスがあります

MyWindows : XtraUserControl,ISmartPartInfoProvider

そして、エスケープキーが押されたら閉じたいです。

次のように、ウィンドウを表示するために Microsoft.Practices.CompositeUI.SmartParts MyWindows を使用します。myWorkspace.Show(temp);

私は次のことを試します:

コンストラクタで

PreviewKeyDown += OnKeyDownP;
KeyDown += OnKeyDown;

メソッドで:

    private void OnKeyDownP(object sender, PreviewKeyDownEventArgs e)
    {
        if (e.KeyData == Keys.Escape)
        {
            this.Dispose();
        }
    }
    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.Escape)
        {
            this.Dispose();
        }
    }

ただし、トリガーされるイベントはありません。

私は何かを逃しましたか?

編集 この投稿は私にとって役に立ちました: esc キーが押されたときに XtraUserControl を閉じます

4

1 に答える 1

1

はい。KeyPreviewのプロパティを にForm設定する必要がありますtrue。また、イベントを使用してFormキーの押下をキャッチする必要があります。

于 2013-03-27T15:35:47.213 に答える