消息框快捷方式

4

有没有办法将热键绑定到消息框上? 想象一下这样的场景,一个YES/NO的消息框弹出来了。那么用户可以通过按下键盘上的“y”或“n”键来选择YES或NO按钮。

谢谢。


在您希望自定义消息框控件的情况下,我认为您最好采用创建一个自定义消息框的方式,即通过创建一个窗体来实现。 - Derek
1
你试过在消息框打开时按 Y 或 N 吗?或者适合你所在地区的相应字母? - Steve
3个回答

3
所以,这个想法是用户可以通过键盘上的 "y" 或 "n" 按钮选择“是”或“否”。
MessageBox 已经具备了这个功能。假设您的 MessageBox 已定义为:
DialogResult dialogResult = MessageBox.Show("Are you sure ??", "Test Message Box", MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
    //Yes pressed
}
else if (dialogResult == DialogResult.No)
{
    //No pressed
}

如果你在 N 上按下 Y,那么你将得到合适的结果。请查看以下屏幕截图: enter image description here


1
对于我的愚蠢问题我很抱歉,我向用户展示的控件看起来与 .NET messagebox 相似,但它不是标准的 MessageBox,显然也有略微不同的行为。 - Alex
@Alex,@Habib: 没有提到你们是如何设置“Yes”和“No”的快捷键的,无需鼠标点击'Y','N'。 - Anand
@Anand,你不需要设置它们,这就是重点。System.Windows.Forms.MessageBox默认为您设置它们。 - Dan Bechard

1
最好的方法是创建自定义控件/消息框,您可以在其中设计窗口的行为并分配热键。

-2
创建一个自定义表单,在按钮点击时执行 form.ShowDialog()。
    if (e.KeyChar == Keys.Y)
        {
            button_yes.PerformClick();
        }
        else if(e.KeyChar == Keys.N)
        {
            button_no.PerformClick();
        }

:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接