正如标题所说,我正在尝试将选项卡按钮更改为输入按钮。我已经写了这个并且它有点工作
public class EnterBasedForm : System.Windows.Forms.Form
{
public EnterBasedForm()
{
KeyPreview = true;
KeyUp += new KeyEventHandler(OnKeyPressed);
}
public void OnKeyPressed(object? sender, KeyEventArgs handler)
{
if (handler.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
}
}
}
但是当按下按钮时,这会按下按钮而不是改变焦点。每次按 Enter 键都会播放声音。如何禁用回车键功能?
最佳答案
您可以在 ProcessCmdKey()
中捕获 Enter 键,使用 base.ProcessTabKey()
强制使用 Tab 键,然后使用 Enter 键,这样它就不会返回 true 更进一步:
public partial class EnterBasedForm : Form
{
public EnterBasedForm()
{
InitializeComponent();
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
base.ProcessTabKey(true);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
关于c# - 尝试将焦点更改按钮从选项卡更改为在 C# Windows 窗体中输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76331184/