我用一个名为“mainWindow”的窗体启动我的程序,在这个窗体中我有一个按钮,它运行一个打开新窗体作为对象的函数。我的问题是我无法访问此对象上的控件或此对象上的函数,我不明白为什么
第一种形式:
public partial class mainWindow : Form
{
public mainWindow()
{
InitializeComponent();
this.drawDriverGrid();
}
public void drawDriverGrid()
{
Form driverGridForm = new driverGridView();
driverGridForm.GetSelected();
}
这是第二种形式
public partial class driverGridView : Form
{
public driverGridView()
{
InitializeComponent();
}
public int GetSelected()
{
return 1;
}
}
我无法运行 GetSelected 函数
最佳答案
必须通知编译器(哈哈)你打算使用 driverGridView 的一个方法。所以不是:
Form driverGridForm = new driverGridView();
driverGridForm.GetSelected();
通过在 driverGridForm 的声明中说“Form”,您是在说“我只希望将 Form 的方法与此变量一起使用”。
相反,您打算说“我希望对这个变量使用 driverGridView 的方法”,所以:
driverGridView driverGridForm = new driverGridView();
driverGridForm.GetSelected();
或者,更好的是:
var driverGridForm = new driverGridView();
driverGridForm.GetSelected();
这意味着“让编译器从 new
表达式中推断出我在这里指的是什么类型”。
另请注意,C# 命名约定是类名、命名空间名和方法名以大写字母开头,因此应该是
var driverGridForm = new DriverGridView();
driverGridForm.GetSelected();
应该是namespace Test
等等。
关于C#访问另一个窗体类中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48290771/