我遇到了幾種將漸變樣式應用於Windows窗體應用程序中的對象的方法。所有的方法都涉及覆蓋OnPaint方法。但是,我正在根據驗證在運行時查看更改風格。應用新顏色(使用漸變)獲取窗體按鈕onClick
如何將新漸變樣式應用於已經呈現的按鈕(就像我可以使用BackColor一樣)?
R, C.
UPDATE:這是我目前正在使用的代碼。這似乎沒有任何效果
private void Button_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("This is a diagonal line drawn on the control",
new Font("Arial", 10), System.Drawing.Brushes.Blue, new Point(30, 30));
g.DrawLine(System.Drawing.Pens.Red, btn.Left, btn.Top,
btn.Right, btn.Bottom);
this.btn.Invalidate();
}
被稱爲由
btn.Paint += new PaintEventHandler(this.Button_Paint);
進一步更新當前代碼
private void Button_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawString("This is a diagonal line drawn on the control",
new Font("Arial", 10), System.Drawing.Brushes.Blue, new Point(30, 30));
g.DrawLine(System.Drawing.Pens.Red, btn.Left, btn.Top,
btn.Right, btn.Bottom);
}
private void btn_Click(object sender, EventArgs e)
{
btn.Paint += new PaintEventHandler(this.Button_Paint);();
btn.Invalidate();
}
謝謝,但我仍然沒有發生任何事情。通過我的代碼,我可以確認兩行(添加新的PaintEventHandler並調用Invalidate())正在被擊中。但是,函數Button_Paint沒有被調用。我甚至在按鈕上添加了一個Refresh(),沒有任何改變。 – 2012-07-05 14:04:15
奇怪...我有這個作爲示例應用程序運行...我會發布整個事情。 – andypaxo 2012-07-05 14:11:21
謝謝。我將用我正在運行的代碼更新我的問題。 – 2012-07-05 14:15:28