为ovalshape覆盖背景色

时间:2014-03-10 11:25:57

标签: custom-controls backcolor

我正在尝试使用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。

0 个答案:

没有答案