2012-04-24 17 views
3

私は、別のコントロールで動的にラップされたウィンドウフォームボタンを作成しています。私が抱えている問題は、ボタンEnabledプロパティを設定すると、有効になっている(灰色ではない)ように表示されているが、clickalbeではないということです。これは、私が正しくボタンを作成していないとか、それ以外の何かを作成しているとは思わない。Windowsフォームbutton.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; 
} 

[UPDATE] 溶液は、画像パラメータはなく、背景画像パラメータに画像要素を置くことが判明しました。 Enabledがfalseに等しい場合であっても、グレーアウト表示されていないボタンになるだろう定義済みのスタイルを持っているFlatStyle力制御を使用して

+1

に「標準」からflatstyleを変えたボタンは、コンテナのControlsコレクションに追加されているように通常制御します。私たちはあなたのコードのこの部分を見ません。 – Steve

+0

私は知っている、道に沿って他のコードがたくさんありますが、これはその一部ですが、どちらの方法でも、私はBackgroundImageではなくイメージを設定する必要があります。イメージをすべて設定すると、意図どおりに動作します。 – Siegeon

+0

プロパティを削除してみてください。FlatStyle = FlatStyle.Flat – Habib

答えて

2
Remove `FlatStyle = FlatStyle.Flat`. 

0

私は同じ問題を抱えていたし、私のために解決策は、「システム」

関連する問題