单击 datagridviewbutton 单元格时如何将 datagridview 值传递给另一个表单
how to pass datagridview value to another form when the datagridviewbutton cell is clicked
我一直在研究我的 datagridview 属性,想知道如何将我选择的数据行的值传递给另一个表单。
private void dgvRptView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0)
{
Form Update = new frmUpdateSvcRep();
Update.Show();
}
}
显然,我只能在 datagridview 中添加按钮,并在单击该按钮时添加一个事件,它会显示一个表单。然而。我一直在尝试将我选择的值传递给另一个文本框,但无济于事。有人可以帮我弄清楚如何在我单击按钮时传递值吗?这是我的图片说明。
这是我单击 Datagridview 中的编辑按钮时的另一个表单。
我现在真的无法理解。我选择创建构造函数,但我不知道如何在此场景中实现它。提前致谢
有几种方法可以实现窗体之间的数据传递。正如您提到的,一种方法是在实例化 Form 时通过构造函数传递:
private void dgvRptView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvRptView.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0)
if (dgvRptView.CurrentRow != null)
{
var row = dgvRptView.CurrentRow.Cells;
DateTime age = Convert.ToDateTime(row["MyColumn"].Value);
string name = Convert.ToString(row["MyName"].Value);
Form Update = new frmUpdateSvcRep(age, name);
Update.Show();
}
}
更新您的其他表单的构造函数以接受这些参数:
public class Update : Form
{
public Update(DateTime age, string name)
{
// do whatever you want with the parameters
}
...
}
传递整个 dgvRptView.CurrentRow
对象可能很诱人,但我建议不要这样做。然后,您的其他表单必须了解 DataGridView 中的列,以便它可以访问值,这不是它应该关心的事情,并且当列名更改时可能会导致运行时错误。
我一直在研究我的 datagridview 属性,想知道如何将我选择的数据行的值传递给另一个表单。
private void dgvRptView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
var senderGrid = (DataGridView)sender;
if (senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0)
{
Form Update = new frmUpdateSvcRep();
Update.Show();
}
}
显然,我只能在 datagridview 中添加按钮,并在单击该按钮时添加一个事件,它会显示一个表单。然而。我一直在尝试将我选择的值传递给另一个文本框,但无济于事。有人可以帮我弄清楚如何在我单击按钮时传递值吗?这是我的图片说明。
这是我单击 Datagridview 中的编辑按钮时的另一个表单。
我现在真的无法理解。我选择创建构造函数,但我不知道如何在此场景中实现它。提前致谢
有几种方法可以实现窗体之间的数据传递。正如您提到的,一种方法是在实例化 Form 时通过构造函数传递:
private void dgvRptView_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvRptView.Columns[e.ColumnIndex] is DataGridViewButtonColumn &&
e.RowIndex >= 0)
if (dgvRptView.CurrentRow != null)
{
var row = dgvRptView.CurrentRow.Cells;
DateTime age = Convert.ToDateTime(row["MyColumn"].Value);
string name = Convert.ToString(row["MyName"].Value);
Form Update = new frmUpdateSvcRep(age, name);
Update.Show();
}
}
更新您的其他表单的构造函数以接受这些参数:
public class Update : Form
{
public Update(DateTime age, string name)
{
// do whatever you want with the parameters
}
...
}
传递整个 dgvRptView.CurrentRow
对象可能很诱人,但我建议不要这样做。然后,您的其他表单必须了解 DataGridView 中的列,以便它可以访问值,这不是它应该关心的事情,并且当列名更改时可能会导致运行时错误。