C# Windows窗体按钮。已启用,但无法直观地工作
我正在创建另一个控件中动态包装的windows窗体按钮。我遇到的问题是,当我设置buttons Enabled属性时,它仍然显示为已启用(未灰显),但不是clickalbe。这让我相信我没有正确地创建按钮,或者其他类似的东西 这是我用来创建按钮的代码C# Windows窗体按钮。已启用,但无法直观地工作,c#,winforms,C#,Winforms,我正在创建另一个控件中动态包装的windows窗体按钮。我遇到的问题是,当我设置buttons Enabled属性时,它仍然显示为已启用(未灰显),但不是clickalbe。这让我相信我没有正确地创建按钮,或者其他类似的东西 这是我用来创建按钮的代码 private System.Windows.Forms.Button CreateWindowsButton(SessionButtonTypes sessionButtonType) { windowsButton = new
private System.Windows.Forms.Button CreateWindowsButton(SessionButtonTypes sessionButtonType)
{
windowsButton = new System.Windows.Forms.Button()
{
Top = 3,
Name = sessionButtonType.ToString(),
Width = DeterminButtonWidth(guiElement),
Height = 45,
FlatStyle = FlatStyle.Flat,
BackgroundImage = GUI.Instance.GUIImageElement(guiElement)
};
// set windows button flat border parameters
windowsButton.FlatAppearance.BorderSize = 0;
// for testing
windowsButton.Enabled = false;
}
[更新]
解决方案是将图像元素放入图像参数,而不是背景图像参数
Remove `FlatStyle = FlatStyle.Flat`.
使用
FlatStyle
强制控件具有预定义的样式,这将使按钮显示为不灰显,即使已启用
等于false。我也有同样的问题,对我来说,解决方案是将FlatStyle从“标准”更改为“系统”通常会将按钮等控件添加到容器控件集合中。我们看不到你代码的这一部分。我知道,还有很多其他代码,这只是其中的一部分,但不管怎样,我都应该设置图像,而不是背景图像。设置图像时,一切正常。请尝试删除属性FlatStyle=FlatStyle.Flat