c# - Windows 窗体按钮。已启用无法正常工作

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

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

最佳答案

Remove `FlatStyle = FlatStyle.Flat`.

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

关于c# - Windows 窗体按钮。已启用无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10305347/

相关文章:

c# - 如何创建一个高效的循环来在 Windows 服务中每 X 分钟执行一次操作?

c# - 为什么这个 System.InvalidOperationException 目标向后?

c# - TableLayoutPanel:删除行

c# - 使用 MaxHeight 和 MaxWidth 约束按比例调整图像大小

c# - 如何制作 float 控件

c# - 更新分离数据时出现 EF Core Postgres DbUpdateConcurrencyException

c# - Office.Interop.Powerpoint 导入

vb.net - 使用名称访问和禁用 ToolStripItems(ToolStripButtons、ToolStripMenuItems)

c# - 如何处理同一控件上的快捷键和按住键

c# - 使用 IPersistStreamInit 从 WPF-WebBrowser-Control 获取 HTML 源