【发布时间】:2021-06-20 05:10:47
【问题描述】:
我的表单上有五种不同颜色的复选框背景,我想压缩可执行代码段(见下文)。有没有更好的办法?
private void CheckBox1_Paint(object sender, PaintEventArgs e)
{
if (checkBox1.Checked)
{
e.Graphics.FillRectangle(Brushes.Red, 0, 0, 13, 13);
}
}
private void CheckBox2_Paint(object sender, PaintEventArgs e)
{
if (checkBox2.Checked)
{
e.Graphics.FillRectangle(Brushes.Green, 0, 0, 13, 13);
}
}
private void CheckBox3_Paint(object sender, PaintEventArgs e)
{
if (checkBox3.Checked)
{
e.Graphics.FillRectangle(Brushes.Yellow, 0, 0, 13, 13);
}
}
private void CheckBox4_Paint(object sender, PaintEventArgs e)
{
if (checkBox4.Checked)
{
e.Graphics.FillRectangle(Brushes.Green, 0, 0, 13, 13);
}
}
private void CheckBox5_Paint(object sender, PaintEventArgs e)
{
if (checkBox5.Checked)
{
e.Graphics.FillRectangle(Brushes.Yellow, 0, 0, 13, 13);
}
}
【问题讨论】:
-
为所有人使用 common 绘画事件! (全选并将事件名称粘贴到事件窗格的 Paint 插槽中!) - 将
sender投射到复选框以确定它是哪个以及要使用哪种颜色。您还可以将每个标签设置为填充颜色,如果它总是相同的话.. -
我不记得使用普通的绘画事件......我立即尝试了!非常感谢“TaW”