2011-10-12 60 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); 
} 

希望它有幫助。