如何导航到Windows生成的控件?

时间:2013-06-27 23:18:55

标签: c# winforms drawstring

我有这段代码

private void picturebox1_Paint(object sender, PaintEventArgs e)
    {
        if (Percent == 100)
        {
            e.Graphics.DrawString("Completed!", font, Brushes.Black, new Point(3, 2));
        }
    }

我想从这里导航:

public void Complete()
{
    picRooms_Paint();//How can I reach picRooms_Paint from here and draw the string?
}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

从您的示例中不清楚picRooms是什么,所以我无法告诉您如何从其他地方访问其图形。

虽然作为一般的API改进,最好将功能代码从事件处理程序移动到可以重用的方法中;

private void DrawComplete(Graphics g)
{
    if (Percent == 100)
    {
        g.DrawString("Completed!", font, Brushes.Black, new Point(3, 2));
    }
}

现在你可以从任何地方调用该方法;

private void picRooms_Paint(object sender, PaintEventArgs e)
{
    DrawComplete(e.Graphics)
}

public void Complete()
{
    DrawComplete(this.CreateGraphics());
}

在你的例子中也没有任何价值,因为Complete没有做任何其他事情,你也可以遵循这个例子,但是将功能代码放在Complete中,而不是按照我的方式添加另一种方法。