0

スペースを押すと、特定のコードブロックが実行されます(正確にはcmd_play)。

ただし、Form Keypress を使用すると、一度しか機能しないようです。

private void frmmain_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == Convert.ToChar(Keys.Space))
                cmdPlay_Click(null, null);
        }

何か案は?

4

2 に答える 2

0

cmdPlay_Click()が問題ではないことを確認しますか?IEイベントハンドラーは複数回呼び出されていますが、cmdPlay_Click()は1回しか再生されていませんか?

于 2009-11-05T00:28:42.660 に答える
0

KeyPressEventArgs の Handled プロパティを true に設定してみてください。問題が解決するかどうかはわかりませんが、良い形です。詳細はこちら

private void frmmain_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == Convert.ToChar(Keys.Space))
            {
                 cmdPlay_Click(null, null);
                 e.Handled = true;
            }
    }

それが機能しない場合は、キーボード イベント フックが確実に機能します。ただし、イベントをフックすることは、はるかに大規模で危険な作業です。

于 2009-10-24T02:21:35.203 に答える