我正在将ButtonRenderer.DrawButton
用于带有按钮的列,该按钮在DataGridView中具有带有图像的按钮,我对何时应使用每个PushButtonState
值感兴趣。
Here是官方文档。它说:
Default
-该按钮具有默认外观。Disabled
-该按钮被禁用。Hot
-该按钮很热。Normal
-按钮具有正常外观。Pressed
-按下按钮。
我不太了解的是Default
和Normal
。这两个角色有什么区别?在下面的屏幕快照中,这两个角色与传递给focused
方法的bool
ButtonRenderer.DrawButton
参数结合在一起。
答案 0 :(得分:1)
关于默认状态
根据button control的基于Windows的桌面应用程序的用户体验准则:
当用户按下Enter键时,将调用默认命令按钮。 它是由开发人员分配的,但是任何命令按钮都将变为 用户将其切换为默认值。
在Windows表单中,要将按钮设置为表单的默认按钮,可以将其设置为表单的AcceptButton
。有关更多信息,请参见How to: Designate a Windows Forms Button as the Accept Button Using the Designer
关于其他州
如果您查看负责绘制标准按钮的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
返回true
的按钮,该按钮设置为AcceptButton
中的Form
。