如何正确执行隐藏方法

时间:2017-10-09 11:10:06

标签: c#

我使用DrawToBitmap方法获取UserControl的位图副本。原来,在某些情况下,DrawToBitmap无法提供我的控件布局的精确副本。这就是为什么我决定隐藏继承成员DrawToBitmap使用' new'改性剂。

public new void DrawToBitmap(Bitmap bitmap, Rectangle targetBounds)
{
    // my code here
}

但现在我面临另一个问题。下面的代码仍在执行错误的' DrawToBitmap。

foreach( Control ctrl in Controls)
{
    Bitmap bmp = new Bitmap(Width, Height);
    ctrl.DrawToBitmap(bmp, new Rectangle(Point.Empty, Size));
}

为了改进它,我被迫以这种方式改变代码

foreach( Control ctrl in Controls)
{
    Bitmap bmp = new Bitmap(Width, Height);

    if(ctrl is MyUserControl)
        ((MyUserControl)m_target).DrawToBitmap(bmp, new Rectangle(Point.Empty, Size));
    else
        ctrl.DrawToBitmap(bmp, new Rectangle(Point.Empty, Size));
}

对我来说这看起来很难看。我该如何妥善解决?

0 个答案:

没有答案