从不同的表单访问数据控件

时间:2014-08-23 17:05:05

标签: c# winforms

我有两种形式,形式A和形式B,从形式A的构造函数中的A i传递形式B访问形式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);

我想帮助解决上述错误。

1 个答案:

答案 0 :(得分:1)

您需要在创建SalesPoint类后设置Summary.Grid属性。

Summary sm = new Summary();
SalesPoint sp = new SalesPoint(sb, sm);
sm.Grid = sp.Grid.

要清楚,您需要SalesPoint类上的公共网格属性和Summary类上的公共网格属性。并让你在Summary类的属性上实现set,以便你知道其他人何时更改它。

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.
        }
    }
}