PushButtonState.Default和PushButtonState.Normal之间的逻辑区别是什么?

3

我在一个DataGridView中使用ButtonRenderer.DrawButton为包含图像按钮的列,并且对于每个PushButtonState值何时使用感兴趣。

这里是官方文档。它说:

  • Default - 按钮具有默认外观。
  • Disabled - 按钮被禁用。
  • Hot - 按钮处于热状态。
  • Normal - 按钮具有正常外观。
  • Pressed - 按钮被按下。

我不太了解的是DefaultNormal。这两个角色之间有什么区别?在下面的截图中,这两个角色与传递给ButtonRenderer.DrawButton方法的focusedbool参数组合在一起。

screenshot


1
默认按钮是在没有显式用户选择的情况下(例如在消息框中,当一个按钮设置了“DialogResult”值时),通过按下空格键/回车键来触发单击事件的按钮。普通按钮是具有标准渲染的按钮。 - Jimi
1个回答

2
关于默认状态:
根据面向 Windows 桌面应用程序的用户体验指南中的按钮控件
默认命令按钮在用户按 Enter 键时被调用。它由开发人员分配,但任何命令按钮都会在用户切换到它时成为默认按钮。
在窗体表单中,要将按钮设置为表单的默认按钮,可以将其设置为表单的 AcceptButton。有关更多信息,请参见如何:使用设计器将 Windows 窗体按钮指定为接受按钮
关于其他状态:
如果您查看负责绘制标准按钮的 ButtonStandardAdapter,您将看到:
private PushButtonState DetermineState(bool up) {
    PushButtonState state = PushButtonState.Normal;

    if (!up) {
        state = PushButtonState.Pressed;
    }
    else if (Control.MouseIsOver) {
        state = PushButtonState.Hot;
    }
    else if (!Control.Enabled) {
        state = PushButtonState.Disabled;
    }
    else if (Control.Focused || Control.IsDefault) {
        state = PushButtonState.Default;
    }

    return state;
}

“IsDefault”是指一个按钮被设置为一个“Form”的“AcceptButton”,则返回“true”。

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