以其他形式显示从datagridview到文本框的值c#.Net

Display value from datagridview to textbox in other form c#.Net

我是C#.Net初学者!

我有 2 种形式 Mainform 和 Derogatory 形式..

我的datagridview是Mainform,然后我的textbox是贬义的。

问题:

如何在Mainform中点击datagridview的单元格后,将Mainform中datagridview的值显示到贬义形式的texthbox中?

这是我的代码:!!

主窗体

private void datagridDero_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    UpdateDerogatory Derogatory = new UpdateDerogatory(ref datagridDero);
    Derogatory.Show();
}

**in updateDerogatory Form**

private void UpdateDerogatory_Load(object sender, EventArgs e)
{
    Mainform main = new Mainform();
    string[] items = new string[main.datagridDero.Columns.Count];
    for (int i = 0; i < main.datagridDero.Columns.Count; i++)
    {
        items[i] = datagridDero[i, datagridDero.CurrentCell.RowIndex].Value.ToString();
    }
    txtfirstname.Text = items[0];
    loadDerogatory();
}

我的问题是无法从 Mainform 调用 datagridview (datagridDero)。

感谢您的帮助!

自从我使用 Winforms 以来已经有一段时间了,但我个人会使用事件:将适当的 DataGridView event(在这种情况下,CellClick 可能是最相关的)绑定到 Derogatory Form 中的方法。通过该方法,您应该能够访问事件信息,这应该允许您获取单元格值,并显示到 Derogatory Form 内的文本框。

您可以在您的单元格点击事件中执行所有这些操作,只需从您的 gridview 中获取您想要的所有数据,显示您的第二个表单,将您的值设置为第二个表单中的值,然后处理第一个表单.或者,如果您不关闭第一个窗体,则可以直接从第二个窗体中直接调用它。无论哪种方式都可以,只是什么时候可用的问题。

这对您不起作用的原因之一是因为在第二种形式中您正在创建主形式 Mainform main = new Mainform(); 的新实例,这个新实例没有数据。如果此时表单仍然存在,只需引用表单名称即可。