当我执行 getPkRowReport() 时,如果我在同一表单 (form1) 上使用该值,它会正常工作。如果我需要表格 2 的 pk,它始终默认为第一行,而不是我在启动表格 2 之前选择的行。如果我在启动表格 2 后查看表格 1,则选择了正确的行,但我仍然得到pk为最高记录。任何帮助,将不胜感激。
表格一:
private int pkFromReport;
public int PkFromReport
{
get
{
pkFromReport = getPkRowReport();
return pkFromReport;
}
}
private int getPkRowReport()
{
if (dgvReportGrid.CurrentRow != null)
{
//get selected row index
int index = this.dgvReportGrid.CurrentRow.Index;
//get pk of selected row using index
string cellValue = dgvReportGrid["rptNo", index].Value.ToString();
//change pk string to int
int pKey = Int32.Parse(cellValue);
return pKey;
}
else
{
return -1;
}
}
表格 2:
private frmMain mainForm = new frmMain();
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = mainForm.PkFromReport.ToString();
}