我在System.Windows.Forms.Panel
中有一个System.Windows.Forms.Form
。在面板中,我使用myGraphic.DrawLine(myPen, myMouseDownPoint, myMouseUpPoint)
绘制线条。它到目前为止工作正常。
现在,我想在另一个System.Windows.Forms.Panel
中显示该面板的内容。
但这不起作用。
我尝试的是:
this.panel1 = MyForm1.panel1;
this.panel1.Refresh();
如何解决此问题?
答案 0 :(得分:2)
Panel
实例添加到多个表单中。它们被设计为只有一个,Form
。最好是使用实用程序函数生成Panel
,并且两个Form
实例都可以调用该实用程序方法。
public static class UtilityMethods
{
public static Panel CreatePanel()
{
Panel panel = new Panel();
//do stuff to panel, draw your lines, etc.
return panel
}
}
这里有两点重要。首先,每次调用方法时都要创建一个新面板。如果每个Form
调用该方法,则会有两个单独的面板,而不是一个共享面板。另外,Form
都不需要访问另一个(从设计的角度来看,它听起来不应该是这样)。对于他们而言,要让第三方召集这项工作,对他们来说更具建筑意义。