2011-10-12 29 views
0

我的代码是如何获得splitcontainer内的控制权?

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

我想从另一种形式获得的datagridview的行的价值。 请帮忙。

感谢&问候,

-Nitin

+0

其实datagridview是在splitcontainer的panel1 – Nitin

回答

0

可能有数以百计的方法可以做到这一点,我只是试着下面,首先让到拆分容器的引用,然后直接访问Panel1,和它的作品:

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

这就是说,如果我是你,我想看看,而不是建立在你的frmMasterInterface属性直接访问DataGridView,然后PAS以frmMasterInterface的名字参照第二种形式。

+0

太棒了!完成... – Nitin

0

我希望你想通过点击cell.from一个不同的单元格内容获取数据。它对我工作,因为你定义,希望它对你有帮助。

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); 
} 

希望它有帮助。