所以我有一个我试图设计的Windows表单程序,我希望Draw面板能够根据从内置的Colordialog选择的颜色来更改颜色。
我需要检测绘制面板后彩色事件的触发,然后发生其他代码。谁能告诉我如何为此创建一个处理程序,感觉我可能会缺少一些简单的东西,但不能弄清楚。
在触发BackColorChanged
事件时要通知,您可以在初始化表单时订阅BackColorChanged
事件:
public class YourForm : Form
{
public YourForm()
{
InitializeComponents();
somePanel.BackColorChanged += SomePanel_OnBackColorChanged;
}
public void SomePanel_OnBackColorChanged(object sender, EventArgs e)
{
//Back color has changed, do something
}
}
如果您想通过从colordialog中选择颜色来更改面板的后色,则不需要该面板的事件。
打开colordialog,等待用"确定"将其关闭,并相应地设置颜色:
if (colorDialog1.ShowDialog() == DialogResult.OK)
{
panel.BackColor = colorDialog1.Color;
}
这就是我所理解的。如果您确实需要使用面板中的事件,为什么不使用每个Winforms控件提供的事件:BackColorChanged
。请参阅ISMA的答案。