Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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# 将datagrid行值传递给下一个表单标签_C# - Fatal编程技术网

C# 将datagrid行值传递给下一个表单标签

C# 将datagrid行值传递给下一个表单标签,c#,C#,大家好,我正在使用winform,我有一个datadrid视图,我有一个上下文菜单条。在那上面写着编辑。当我单击datadrid时,右键单击一个上下文菜单,该菜单将打开“编辑”。当点击时,它应该将值传递给一个新表单,我已经编写了传输代码,但它没有传递我不知道这里有什么问题 private void editToolStripMenuItem_Click(object sender, EventArgs e) { Form6 f = new Form6();

大家好,我正在使用winform,我有一个datadrid视图,我有一个上下文菜单条。在那上面写着编辑。当我单击datadrid时,右键单击一个上下文菜单,该菜单将打开“编辑”。当点击时,它应该将值传递给一个新表单,我已经编写了传输代码,但它没有传递我不知道这里有什么问题

       private void editToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Form6 f = new Form6();
     f.label1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

    }

代码是否正确?

如果尚未打开Form6,则需要在将文本分配给其标签后显示它

private void editToolStripMenuItem_Click(object sender, EventArgs e)
{
    Form6 f = new Form6();
    f.label1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
    f.Show();

}
如果Form6已经打开,您需要使用Form6的实例,而不是创建新实例,您可以使用来获取已打开的表单

Form6 f = (Form6)Application.OpenForms["form6"];
f.label1.Text = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

阿迪尔拜。它是必要的形式应该是开放的吗?我无法创建新实例并将其传递给标签?否,但您需要在为其赋值后显示该表单。@shariq要么您有0个选定行,要么您的行中有0个单元格。@shariq_khan,如果您的应用程序为空。OpenForms[“form6”];然后确保您的Form6对象名为Form6,或者传递您拥有的Form6对象名,并且应该将其打开。我已经更新了我的答案,如果您已经像问题中那样打开了表单6,您需要显示它。您需要调试它以查看其中的null值,检查dataGridView1.SelectedRows.Count是否为1或greate,您可能没有任何选中的行。您还需要打开表单。代码在哪里?f、 ShowDialog()?哎呀,那是个愚蠢的错误