[英]How to access text button outside Form.cs class (I mean in Program.cs)
[英]A Connecting Program.cs And Form.cs
我的 Form.cs 中有一个 function 我想在我的 program.cs 中召唤
但是如果function不是static,program.cs就不能用了。 如果是 static,Form.cs 不能使用它,因为它涉及不是 static 的控件。
我可以删除我的 program.cs 代码并在我的 form.cs 中找到一种方法来做同样的事情,但我想知道是否有更简单的方法。
这通常是 form.cs 中的 function 所做的
public void Toggle()
{
MyDomainUpDown.SelectedIndex = 3;
}
程序.cs:
MainForm.Toggle();
为什么你不能从你的 program.cs 访问它?
您可以轻松地定义一个变量来保存表单,然后引用它:
static class Program
{
// Any method can now access the form
static Form1 MyForm;
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MyForm = new Form1();
Application.Run(MyForm);
}
}
Form 实例应该是在 program.cs 中创建的,因此您可以从那里访问公共/内部实例方法。
Program.cs 的默认实现或多或少是这样的:
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());
}
}
new MainForm()
创建表单的实例。 只需将其分配给局部变量即可调用其方法:
var mainForm = new MainForm();
mainForm.MethodToCall();
Application.Run(mainForm);
我不确定您的情况是什么,但是如果您没有参考 myForm 为什么或何时要调用 MyForm 中定义的任何非 static 方法?
另一方面,如果您有对它的引用,那么只需将MyFunction
公开并正常调用它:
class Program
{
MyForm myForm = new MyForm();
....
myForm.MyFunction(); //call here
}
public partial class MyForm: Form
{
....
public int MyFunction() {...}
}
如果有实际原因,您也可以将其设为 static 并在 function 的 arguments 中添加对 MyForm 实例的引用。
public partial class MyForm: Form
{
....
public static int MyFunction(MyForm myForm) {...}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.