如何从c#中的另一个类调用方法
本文关键字:另一个 调用 方法 | 更新日期: 2023-09-27 18:25:27
在C#中,我有一个类的方法如下:
namespace ControlCenter
{
public partial class Canvas
{
...
public void display(string itemID)
{
... // here assign some properties to the item
this.Children.Add(item);
}
}
}
此函数允许我成功地将项目添加到画布中。现在我想在另一个不同的类中调用这个方法,如下所示:
namespace ControlCenter
{
public class addLayer
{
private ControlCenter.Canvas myCanvas = new ControlCenter.Canvas();
public void add()
{
myCanvas.display("1234");
}
}
}
但这无法将任何项目添加到我的画布中。通过调试,我怀疑问题应该在这一行:
this.Children.Add(item);
当从addLayer
类调用display
方法时,我想this
并没有指向活动画布。但即使在大规模的互联网搜索之后,我也找不到任何解决方案。有什么帮助吗?
在所示的示例中,我猜画布是一个UserControl,您的目标是在调用add()
方法时向该用户控件添加一个项。但在addlayer
类的当前示例中,您已经创建了一个全新的画布,并向其中添加了一个项目。该方法确实有效,它只是将子对象添加到一个未显示的全新canvas
中。解决方法是将显示的画布实例传递给addlayer
类。InitializeComponent()方法之后。
就像这样…
namespace ControlCenter
{
public partial class Canvas : UserControl
{
public Canvas
{
InitialiseComponent();
addLayer.myCanvas = this;
}
public void display(string itemID)
{
... // here assign some properties to the item
this.Children.Add(item);
}
}
}
namespace ControlCenter
{
public static class addLayer
{
private static ControlCenter.Canvas myCanvas;
public static void add()
{
myCanvas.display("1234");
}
}
}
现在,当您调用addLayer.add()时,您将向显示的画布中添加一个项目