Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在splitcontainer中获得控制权?_C#_Winforms_Datagridview - Fatal编程技术网

C# 如何在splitcontainer中获得控制权?

C# 如何在splitcontainer中获得控制权?,c#,winforms,datagridview,C#,Winforms,Datagridview,我的代码是 ((DataGridView)(Application.OpenForms["frmMasterInterface"] .Controls["splitContainer1"] .Controls["splitContainer1.Panel1"] .Controls["pnlLeft"] .Controls["grbfittingTypes"] .Controls["dgvitems"])).Rows[RowIndex].Cells["sizeRange"].Value 我想从另

我的代码是

((DataGridView)(Application.OpenForms["frmMasterInterface"]
.Controls["splitContainer1"]
.Controls["splitContainer1.Panel1"]
.Controls["pnlLeft"]
.Controls["grbfittingTypes"]
.Controls["dgvitems"])).Rows[RowIndex].Cells["sizeRange"].Value
我想从另一个窗体获取datagridview行的值。 请帮忙

谢谢和问候


-Nitin

实现这一点的方法可能有数百种,我刚刚尝试了以下方法,首先获取对拆分容器的引用,然后直接访问
Panel1
,它可以工作:

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

也就是说,如果我是你,我会在你的
frmMasterInterface
上创建一个属性,直接访问
DataGridView
,然后将对frmMasterInterface的引用传递到第二个表单。

我希望您希望通过单击单元格内容来获取数据。从不同的位置。它按照您的定义对我有效,希望对您有所帮助

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);
}
DataGridView-dgg//全球宣布
私有无效dd()
{
var form=(frmMasterInterface)应用程序。OpenForms[“frmMasterInterface”];//表单名称
if(form==null)返回;
foreach(DataGridView dgv格式为.Controls.OfType())
if(dgv.Name==“dataGridView1”)//数据网格视图的名称
{
dgg=dgv;
dgv.CellMouseClick+=Datagirdmouseclick;
}
}
私有void DataGridMouseClick(对象发送者,DataGridViewCellMouseEventArgs e)
{
Trace.WriteLine(dggg.Rows[e.RowIndex].Cells[“SizerAge”].Value);
}

希望有帮助。

实际上datagridview在splitcontainer的panel1中