C# 从其他窗体访问数据控件

C# 从其他窗体访问数据控件,c#,winforms,C#,Winforms,我有两个表单,表单A和表单B,从A访问表单B,我在表单A的构造函数中传递表单B,这样我就可以访问gridview 有人建议我在公共属性中公开我的gridview,并将其传递给我希望从中访问它的其他表单 这是我对向我提出的建议的理解: public RadGridView Grid { get { return GridViewDisplay; } } 然后我将此属性传递给我的第二个表单: Form1 f1 = new form1(); Form2 f2 = new form2(f1.G

我有两个表单,表单A和表单B,从A访问表单B,我在表单A的构造函数中传递表单B,这样我就可以访问gridview

有人建议我在公共属性中公开我的gridview,并将其传递给我希望从中访问它的其他表单

这是我对向我提出的建议的理解:

public RadGridView Grid
{
    get { return GridViewDisplay; }
}
然后我将此属性传递给我的第二个表单:

Form1 f1 = new form1();
Form2 f2 = new form2(f1.Grid);
这是我的问题:

public void DockAllWindows()
    {
        SideBar sb = new SideBar();
        Summary sm = new Summary();
        SalesPoint sp = new SalesPoint(sb, sm); // This is where my issue is, Point A
        StartPage start = new StartPage();
        radDock.DockControl(sp, (DockPosition.Fill), DockType.Document);
        radDock.DockControl(start, (DockPosition.Fill), DockType.Document);
        radDock.DockControl(sm, (DockPosition.Right), DockType.ToolWindow);
    }
在点A处,我将摘要表单的对象实例传递给SalePoint表单。 因此,我无法执行以下代码,因为它会生成错误:

Summary sm = new Summary(sp.Grid); // Error right here
            SalesPoint sp = new SalesPoint(sb, sm);

我需要一些帮助来避免上述错误。

创建SalesPoint类后,需要设置Summary.Grid属性

Summary sm = new Summary();
SalesPoint sp = new SalesPoint(sb, sm);
sm.Grid = sp.Grid.
为了清楚起见,SalesPoint类需要一个公共网格属性,Summary类需要一个公共网格属性。并使您在Summary类的属性上实现该集,以便您知道其他人何时更改它

public RadGridView Grid
{
    get { return grid; }
    set
    {
        if (grid != value)
        {
            grid = value;
            // Add any special processing that summary needs to do to pull data from the SalesPoint Grid property.
        }
    }
}

看看你的总结课。您可以在构造函数中传递什么对象?我们无法从这里看到它。非常感谢,我不知道为什么我被否决了,但你显然理解我的问题,它看起来很有希望,我会试试看它是否有效。谢谢你,它按照我希望的方式工作,你帮了我大忙,非常感谢。)