我正在尝试使用BackColor变量来填充OvalShape。 我这样做是因为我需要在运行时设置颜色,它是唯一使用FillColor而不是BackColor的自定义控件。 使用propertygrid在运行时更改颜色。
我正在覆盖BackColor,它一直有效,直到我点击OvalShape。 如果我点击Oval它会为整个Control着色而不仅仅是Oval。
public override Color BackColor
{
get
{
if (oval == null)
{
return Color.Transparent;
}
else
{
return oval.FillColor;
}
}
set
{
if (oval == null)
{
base.BackColor = Color.Transparent;
if (sc != null)
sc.BackColor = Color.Transparent;
}
else
{
base.BackColor = Color.Transparent;
if (sc != null)
sc.BackColor = Color.Transparent;
oval.FillColor = value;
}
}
}
sc是ShapeContainer。
我认为问题在于,当我点击控件时,获取backColor的oval.FillColor。