我在Windows窗體應用程序中有一個MetroFramework.Controls.MetroGrid。在frmPatientList_Shown中,我調用了一個方法loadPatientList()。綁定dtb到gridview後,我還添加了一個DataGridViewLinkColumn。 單擊鏈接將打開一個新窗體,其中我更新Patient數據,並在formEditPatient.FormClosed上再次調用loadPatientList()方法,這次DataGridViewLinkColumn被添加兩次。我怎樣才能防止添加鏈接兩次? 這裏是我的代碼:防止向datagridview添加兩列
private void frmPatientList_Shown(object sender, EventArgs e)
{
loadPatientList();
}
private void loadPatientList()
{
DataTable dtb = Patient.getPatientList();
bindToGrid(dtb);
}
private void bindToGrid(DataTable dtb)
{
dataGridView1.DataSource = null;
using (dtb)
{
dataGridView1.DataSource = dtb;
dataGridView1.AutoGenerateColumns = false;
dataGridView1.AllowUserToAddRows = false;
dataGridView1.Columns[0].Name = "PatientId";
dataGridView1.Columns[0].HeaderText = "ID";
dataGridView1.Columns[0].DataPropertyName = "PatientId";
// more code here.
}
DataGridViewLinkColumn EditLink = new DataGridViewLinkColumn();
EditLink.UseColumnTextForLinkValue = true;
EditLink.HeaderText = " Edit ";
EditLink.DataPropertyName = "lnkColumn";
EditLink.LinkBehavior = LinkBehavior.SystemDefault;
EditLink.Text = "Edit";
dataGridView1.Columns.Add(EditLink);
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 8 && e.RowIndex >= 0)
{
using (frmEditPatient formEditPatient = new frmEditPatient(id))
{
formEditPatient.FormClosed += FormEditPatient_FormClosed;
formEditPatient.ShowDialog();
}
}
}
private void FormEditPatient_FormClosed(object sender, FormClosedEventArgs e)
{
loadPatientList();
}
任何幫助,將不勝感激。