2

9つのボタンがある「ホーム」画面があります。ボタンのすべてのテキストプロパティは次のように設定されます:&Returnsは、ディスプレイでRに下線が引かれるようにします。

したがって、ホーム画面でRを押すと、返品画面が読み込まれます。これは私が持っているものです:

private void frmHome_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.R)
    {
        frmReturns R = new frmReturns(empid);
        R.Show();
        this.Hide();
        e.Handled = true;
    }
}

しかし、それはまったく何もしません。誰か助けてもらえますか?

4

2 に答える 2

3

フォームのKeyPreviewプロパティをに設定する必要がありますtrue

this.KeyPreview = true;

そうしないと、キーが押されたイベントが、メイン フォームではなく、フォームの一部の内部コントロールで発生します。

また、比較では大文字と小文字が区別されます。e.KeyChar == (char)Keys.Rでのみ機能しますが、では機能しRませんr

if(char.ToUpper(e.KeyChar) == (char)Keys.R)
于 2013-02-21T08:55:49.063 に答える
0

この投稿も同様の傾向にあると思います。 フォームとすべての入力を送信するには、CTRL+Sを押します。

私はこれに似た何かをしました、そしてそれは働きます。終了する前にページをどこかにリダイレクトさせるために誤ってヒットrと入力したくないので、より多くの入力が必要になる場合がありますか?

于 2013-02-21T08:50:37.843 に答える