3

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

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

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;
}

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

4

2 回答 2

2
Remove `FlatStyle = FlatStyle.Flat`.

UsingFlatStyle强制控件具有预定义的样式,这将使按钮即使在Enabled等于 false 时也不会显示为灰色。

于 2012-04-24T20:58:22.203 回答
0

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

于 2016-10-17T09:35:53.507 回答