我将表单1:Products中的参数传递给Form2:ProductEdit。在ProductEdit中编辑参数后,Products中的datagridview不会刷新。
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0 && e.RowIndex >= 0)
{
ProductEdit pe = new ProductEdit(dataGridView.SelectedRows[0].Cells[1].Value.ToString(), dataGridView.SelectedRows[0].Cells[2].Value.ToString(), dataGridView.SelectedRows[0].Cells[3].Value.ToString());
pe.Show(dataGridView);
}
}
public ProductEdit(string PId, string PName, string PPrice)
{
InitializeComponent();
txtPId.Text = PId;
txtPName.Text = PName;
txtPPrice.Text = PPrice;
}
答案 0 :(得分:0)
有两种解决方法。
传入单元格而不是传入字符串。将文本框绑定到单元格。然后,当您直接修改它时,所做的编辑将以原始形式显示。
关闭产品编辑后,将文本框中的值重新写回dataGridView.SelectedRows[0].Cells(xxxx)
方法1的一个例子:(未经测试)
ProductEdit pe = new ProductEdit(dataGridView.SelectedRows[0].Cells[1], dataGridView.SelectedRows[0].Cells[2], dataGridView.SelectedRows[0].Cells[3]);
public ProductEdit(DataGridViewCell PId, DataGridViewCell PName, DataGridViewCell PPrice)
{
InitializeComponent();
txtPId.DataBindings.Add("Text", PId, "Value");
txtPName.DataBindings.Add("Text", PName, "Value");
txtPPrice.DataBindings.Add("Text", PPrice, "Value");
}