2009-06-04 32 views

回答

6

ControlPaint方法不支持可視樣式,這就是爲什麼它看起來都搞砸了(嘗試在Program.cs Application.EnableVisualStyles()中取出這行代碼;並且所有內容都看起來像那個按鈕,看看我的意思。)

您應該使用的正確方法是ButtonRender.DrawButton(..)方法。這確實符合視覺樣式,因此會正確渲染。快速樣品:

  ButtonRenderer.DrawButton(this.CreateGraphics(), 
      new Rectangle(20, 20, 100, 40),"Click me!", 
      new Font(this.Font, FontStyle.Regular),false, 
      System.Windows.Forms.VisualStyles.PushButtonState.Normal); 
+0

我找了幾個小時......謝謝。 – 2009-06-04 03:45:02

0

作爲最後一個參數,firstsecond overload具有ButtonState

我想像你想要的:ButtonState.Normal,你得到的是ButtonState.Flat

+0

我正常使用,邊框看起來不錯,但不是背景。似乎沒有ComboBoxRenderer的按鈕版本。遊民。 – 2009-06-04 03:40:19