我有windows窗体,它调用另一个类的方法,需要作为参数传递。
public partial class Form1 : Form
{
private myClass _myClass;
public Form1()
{
InitializeComponent();
_myClass = new myClass(//pass this instance - Form1 - as parameter)
}
}
但我不知道如何将Form1实例作为参数传递?我需要这样做,因为这个其他类正在创建系统托盘图标和菜单条,并且能够关闭父窗体。
答案 0 :(得分:4)
你只是这样做:
_myClass = new myClass(this);
然后在myClass中更改构造函数:
public class myClass
{
private Form1 theForm;
public myClass(Form1 theForm)
{
this.theForm = theForm;
}
...
}
现在您可以在课程中访问该表单。我想我会避免这样做。尽量让表格负责打电话给班级,并确定何时应关闭班级。
让类将引用保存回实例化它的表单,并从类中关闭它似乎可能导致混乱和可维护性问题。
答案 1 :(得分:3)
只需在另一个类构造函数中声明类型为Form
的参数:
public class myClass
{
private Form otherForm;
public myClass(Form form)
{
otherForm = form;
}
}
并从Form1
_myClass = new myClass(this);
答案 2 :(得分:2)
我无法弄清楚你想要达到的目标。但是如果你只是想通过这个表格而不是你可以使用它。
_myClass = new myClass(this);
答案 3 :(得分:1)
当然可以:
_myClass = new myClass(this);
答案 4 :(得分:0)
除非我遗漏了什么,否则这应该是相当简单的:
public Form1(myClass instance)
{
InitializeComponent();
_myClass = instance;
}