我使用名为" 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函数
答案 0 :(得分:4)
必须通知编译器(HA HA)您打算使用driverGridView的方法。所以不是:
Form driverGridForm = new driverGridView();
driverGridForm.GetSelected();
说" Form"在driverGridForm的声明中,你说"我只希望使用Form的方法和这个变量"。
相反,你打算说"我希望使用driverGridView的方法和这个变量",所以:
driverGridView driverGridForm = new driverGridView();
driverGridForm.GetSelected();
或者,更好:
var driverGridForm = new driverGridView();
driverGridForm.GetSelected();
这意味着"让编译器从new
表达式中推导出我在这里所说的类型"。
另请注意,C#命名约定是类名和命名空间名称以及方法名称以大写字母开头,所以它应该是
var driverGridForm = new DriverGridView();
driverGridForm.GetSelected();
它应该是namespace Test
,依此类推。