C# Windows窗体按钮。已启用,但无法直观地工作

C# Windows窗体按钮。已启用,但无法直观地工作,c#,winforms,C#,Winforms,我正在创建另一个控件中动态包装的windows窗体按钮。我遇到的问题是,当我设置buttons Enabled属性时,它仍然显示为已启用(未灰显),但不是clickalbe。这让我相信我没有正确地创建按钮,或者其他类似的东西 这是我用来创建按钮的代码 private System.Windows.Forms.Button CreateWindowsButton(SessionButtonTypes sessionButtonType) { windowsButton = new

我正在创建另一个控件中动态包装的windows窗体按钮。我遇到的问题是,当我设置buttons Enabled属性时,它仍然显示为已启用(未灰显),但不是clickalbe。这让我相信我没有正确地创建按钮,或者其他类似的东西

这是我用来创建按钮的代码

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