我在与表单相同的命名空间中有一个类。我可以从我的班级访问表单控件的方法/属性吗?我怎么能做到这一点?
答案 0 :(得分:10)
你需要公开你的控件,但我不会这样做。我宁愿从我的控件中暴露出我需要的东西。所以说如果我需要访问文本框中的文本:
public class Form1 : Form
{
public string TextBoxText
{
get{return this.textBox1.Text;}
set{this.textBox1.Text = value;}
}
}
答案 1 :(得分:3)
一种方法是将表单传递给类,如下所示:
class MyClass
{
public void ProcessForm(Form myForm)
{
myForm.....; // You can access it here
}
}
并公开你想要的控件,以便你可以访问它们,但实际上你应该只传递你需要的类,而不是整个表单本身
答案 2 :(得分:2)
如果您将表单的引用传递给您的班级,您应该能够从班级访问表单的方法和属性:
public class MyClass
{
private Form form;
public void GiveForm(Form form)
{
this.form = form;
}
}
答案 3 :(得分:0)
您需要生成存根。
为此
在自定义类中编写构造函数
public YourClass(Main main)
{
// TODO: Complete member initialization
this.main = main;
}
然后在主类/表单类中初始化您的类
YourClass yesMyClass = YourClass(this);
如果您想要在自定义类上访问表单组件,那么
this.main.label1.Text="I done that smartly'