另一个表单类

时间:2018-01-16 22:21:56

标签: c#

我使用名为" 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函数

1 个答案:

答案 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,依此类推。