我正在尝试将我的程序划分为类以减少混乱并提高可读性。
在我的一种方法中,我需要在屏幕上找到标签的位置。
this.Controls.Find
我将所有内容移动到单独的类之前工作过,但它不再存在,因为我不再在与控件相同的类中执行它。我尝试了Main.Controls.Find
(Main.cs是我的表单执行和设置的地方),但这也没有用,我收到错误,"非静态字段、方法或属性'Control.Controls'需要对象引用"
如何引用控件?是否需要添加额外的 using 语句?
谢谢
乔希
您需要对表单的引用,并传递给新引入的方法(或类)。
以前
public class Main : Form {
public void Whatever() {
...
this.Controls.Find(...);
}
}
后
public class Main : Form {
public void Whatever() {
...
new Helpers().HelperMethod( this );
}
}
public class Helpers {
public void HelperMethod( Form form ) {
...
form.Controls.Find
}
}
或
public class Main : Form {
public void Whatever() {
...
new Helpers( this ).HelperMethod();
}
}
public class Helpers {
private Form Form { get; set; }
public Helpers( Form form ) {
this.Form = form;
}
public void HelperMethod() {
...
this.Form.Controls.Find
}
}