如何访问其他类中的Windows窗体控件
本文关键字:Windows 窗体 控件 其他 何访问 访问 | 更新日期: 2023-09-27 18:26:30
我有一个名为"Form1"
的表单,包含两个名为""Button1"
"answers""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";
}
}
}
这是因为,您正在使用参数"This"初始化Class1对象,即Form1的构造函数中的"abc",如下所示:
public Form1()
{
InitializeComponent();
abc = new Class1(this);
}
因此,类Class1中应该有一个构造函数,它采用Class1中不存在的类型的参数。请在Class1:中输入以下代码
public Class1(Form1 v)
{
this.v = v;
}
和测试,它将解决您的问题。
我希望这对你有帮助
没错。阅读信息。您实际上还没有为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";
}
}