拒绝Enter激活单击操作



我想帮助我正在开发的新点击游戏,但我偶然发现了一个向";playerPoints";它来自启动0。你需要点击一个被称为";button_click";这将把+1(++(加到你的";playerPoints";。但有一个错误,当你点击按钮,然后按住输入按钮时,它会像一个小的自动点击器,我不想要。有没有办法防止回车键在按下或按住时增加值?作为交换,谢谢。

int playerPoints = 0;
public void button_click_Click(object sender, EventArgs e) // main click button
{
playerPoints++;
label_points.Text = playerPoints.ToString() + " BITS";
}

Dan Byström的一个伟大想法解决了这个问题如果你不想让按钮响应回车键。使用一个简单的图像或标签,并将该功能链接到image_click或label_click

再次感谢大家!

当您单击主题Button时,它将成为表单的ActiveControl。作为设置ActiveControl的窗体内部处理的一部分,将调用form.UpdateDefaultButton方法。

备注

UpdateDefaultButton方法根据以下优先级确定当用户按下ENTER时,表单上的哪个按钮引发其Click事件:

为了避免主题按钮成为默认按钮,请使用以下内容覆盖表单的UpdateDefaultButton方法:

protected override void UpdateDefaultButton()
{
if (ActiveControl == button_click)
{
return;
}
else
{
base.UpdateDefaultButton();
}
}

挂钩KeyDown事件而不是Click事件。

https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.control.keydown

Button.KeyDown += Button_KeyDown;
// Handle the KeyDown event
private void Button_KeyDown(object sender, KeyEventArgs e)
{
//increment your counter
}

最新更新