3

ユーザーがボタンを押したときにクリックイベントをキャンセルする簡単な方法はありますか (ボタンをマウスでクリックする代わりに?)

私は試してみました:

    private void button3_Click(object sender, EventArgs e)
    {
        KeyEventArgs ke = e as KeyEventArgs;
        if (ke != null)
        {
            if (ke.KeyCode == Keys.Enter)
            {
                return;
            }

        }
    }

しかし、ケはヌルです

4

5 に答える 5

3
public void btnClick(object sender, EventArgs e)
{
  bool IsMouse = (e is System.Windows.Forms.MouseEventArgs);

  // If not mouse, they hit spacebar or enter
}
于 2013-09-25T18:31:06.417 に答える
2

はい、ヌルになります。EventArgsではないのでKeyEventArgs

KeyEventArgsKeyDownorKeyUpイベントにパラメーターとして渡されます。あなたは物事を台無しにしています。

于 2013-09-25T18:26:08.480 に答える
1

このようなことができます

private bool flag = false;
private void button1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Return)
    {
        flag = true;
    }
}

private void button1_Click(object sender, EventArgs e)
{
    if (flag)
    {
        flag = false;
        return;
    }
    //else do original task
}
于 2013-09-25T18:33:00.300 に答える
0

ボタンの KeyPress イベントを処理し、ボタンのクリックで戻る代わりに、Enter キーを無効にするか無視することができます

于 2013-09-25T18:33:14.653 に答える