我有一个名为"Form1"
的表单,其中包含名为"Button1"
和"rtDisp"
文本框的两个控件以及名为"Class1"
的类。在名为Class1
的类中,我想访问Form1
控件,例如rtdisp
,当我点击button1
时,会显示一些文字“abc123”。
我的代码如下:当我执行以下代码时,它给出了以下错误:
'WindowsFormsApplication1.Class1' does not contain a constructor that takes '1' arguments
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public string setcodes
{
get { return rtdisp.Text; }
set { rtdisp.Text = value; }
}
private Class1 abc;
public Form1()
{
InitializeComponent();
abc = new Class1(this);
}
private void button1_Click(object sender, EventArgs e)
{
rtdisp.Text = setcodes;
}
}
}
namespace WindowsFormsApplication1
{
public class Class1
{
private Form1 v;
public string abc(Form1 v)
{
this.v = v;
return v.setcodes = "abc123";
}
}
}
答案 0 :(得分:0)
没错。阅读邮件。你还没有真正为Class1对象做一个构造函数。即使它是空的,你仍然应该制作一个。如果你想了解更多关于构造函数的内容,我非常乐意进入它...
public class Class1
{
private Form1 v;
public Class1()
{
//you normally do your initialization in here.
}
public string abc(Form1 v)
{
this.v = v;
return v.setcodes = "abc123";
}
}
答案 1 :(得分:0)
这是因为,您正在初始化Class1对象,即' abc'在Form1' s构造函数中使用参数' this',如下所示:
public Form1()
{
InitializeComponent();
abc = new Class1(this);
}
因此Class1中应该有一个构造函数,它接受类型的参数,该类型在Class1中不存在。请将下面的代码放在Class1中:
public Class1(Form1 v)
{
this.v = v;
}
并测试,它将解决您的问题。
我希望这会对你有所帮助。 :)