如何将参数传递给调用表单
本文关键字:调用 表单 参数传递 | 更新日期: 2023-09-27 18:03:29
下面是使用单例模式的Form的代码。
private Form1(int number = -1)
{
test_number = number;
InitializeComponent();
}
private static Form1 _Instance;
public static Form1 Instance
{
get
{
if (_Instance == null)
_Instance = new Form1();
return _Instance;
}
}
我在构造函数中设置了int number = -1,因为没有它就无法工作:
if (_Instance == null)
_Instance = new Form1();
但是当我想以另一种形式调用这个表单时:
Form1 f = new Form1(n);
但是这里是错误:
Error 2 'KR.Form1' does not contain a constructor that takes 1 arguments
如何用单例模式传递参数?
似乎您希望您的Singleton存储一个变量。创建一个设置变量的函数,并使构造函数为空。
不要在构造函数中使用默认值。对于singleton,如果不想使用它,只需传递默认值0即可。或者,定义两个构造函数,一个不带参数,一个带参数。
同样,如果你想使用来自另一个Form(或任何其他类)的构造函数,它不能被定义为private
。将其定义为public
。
public Form1(int number) : this() //call the default constructor so that InitializeComponents() is still called
{
test_number = number;
}
public Form1()
{
InitializeComponent();
}