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`.

を使用すると、 が false に等しいFlatStyle場合でもボタンがグレー表示されないように、コントロールに定義済みのスタイルが適用されます。Enabled

于 2012-04-24T20:58:22.203 に答える
0

私は同じ問題を抱えていましたが、解決策はフラットスタイルを「標準」から「システム」に変更することでした

于 2016-10-17T09:35:53.507 に答える