如何在splitcontainer中获得控制权?

时间:2011-10-12 09:06:25

标签: c# winforms datagridview

我的代码是

((DataGridView)(Application.OpenForms["frmMasterInterface"]
.Controls["splitContainer1"]
.Controls["splitContainer1.Panel1"]
.Controls["pnlLeft"]
.Controls["grbfittingTypes"]
.Controls["dgvitems"])).Rows[RowIndex].Cells["sizeRange"].Value

我想从另一个表单中获取datagridview行的值。 请帮忙。

谢谢&的问候,

-Nitin

2 个答案:

答案 0 :(得分:0)

可能有数百种方法可以执行此操作,我刚刚尝试了以下操作,首先获取对拆分容器的引用,然后直接访问Panel1,它可以正常工作:

SplitContainer sc = (SplitContainer)Application.OpenForms[0].Controls["splitContainer1"];
DataGridView dg = (DataGridView)sc.Panel1.Controls["dataGridView1"];

那就是说,如果我是你,我会考虑在frmMasterInterface上创建一个属性来直接访问DataGridView,然后将引用传递给frmMasterInterface到第二个形式。

答案 1 :(得分:0)

我希望您想通过点击单元格内容来获取数据。来自不同的。它对我来说对您有用,希望对您有所帮助。

DataGridView dggg; //Globally Declared
private void dd()
{
    var form = (frmMasterInterface)Application.OpenForms["frmMasterInterface"];//Form Name
    if (form == null) return;
    foreach (DataGridView dgv in form.Controls.OfType<DataGridView>())
        if (dgv.Name == "dataGridView1") //name of data grid view
        {
            dggg = dgv;
            dgv.CellMouseClick += Datagirdmouseclick;
        }
}

private void Datagirdmouseclick(object sender, DataGridViewCellMouseEventArgs e)
{

    Trace.WriteLine(dggg.Rows[e.RowIndex].Cells["sizeRange"].Value);
}

希望它有所帮助。