所以我有這個按鈕來啟動另一個程式。我在啟動后禁用它以防止雙重啟動情況。問題是前景色從白色變為黑色,這與我的深色背景色相比看起來不太好。如何在禁用時使 ForeColor 不更改,甚至在禁用后更改它?
uj5u.com熱心網友回復:
您需要使用當前按鈕的EnabledChanged和paint事件。假設您的按鈕名稱是button1.
private void button1_EnabledChanged(object sender, EventArgs e)
{
Button currentButton = (Button)sender;
button1.ForeColor = currentButton.Enabled== false ? Color.White : currentButton.ForeColor ;
button1.BackColor = currentButton.Enabled == false? Color.Black : currentButton.BackColor;
}
private void button1_Click(object sender, EventArgs e)
{
button1.Enabled = false;
}
private void button1_Paint(object sender, PaintEventArgs e)
{
Button btn = (Button)sender;
var solidBrush = new SolidBrush(btn.ForeColor);
var stringFormat = new StringFormat
{
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center
};
e.Graphics.DrawString(button1.Text, btn.Font, solidBrush, e.ClipRectangle, stringFormat);
solidBrush.Dispose();
stringFormat.Dispose();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/493265.html
