Windows窗体button.Enabled不能直观地工作

时间:2012-04-24 20:14:18

标签: c# winforms

我正在创建一个动态包装在另一个控件中的Windows窗体按钮。我遇到的问题是,当我设置按钮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;
}

[UPDATE] 解决方案是将图像元素放入图像参数,而不是背景图像参数。

2 个答案:

答案 0 :(得分:2)

Remove `FlatStyle = FlatStyle.Flat`.

使用FlatStyle强制控件具有预定义的样式,即使Enabled等于false,该按钮也不会显示为灰色。

答案 1 :(得分:0)

我遇到了同样的问题,对我而言,解决方案是将平面样式从“标准”改为“系统”