private void butAdd_Click(object sender, System.EventArgs e) { Referral refCur = new Referral(); bool referralIsNew = true; if (MsgBox.Show(this, MsgBoxButtons.YesNo, "Is the referral source an existing patient?")) { FormPatientSelect FormPS = new FormPatientSelect(); FormPS.SelectionModeOnly = true; FormPS.ShowDialog(); if (FormPS.DialogResult != DialogResult.OK) { return; } refCur.PatNum = FormPS.SelectedPatNum; Referral referral = Referrals.GetFirstOrDefault(x => x.PatNum == FormPS.SelectedPatNum); if (referral != null) { refCur = referral; referralIsNew = false; } } FormReferralEdit FormRE2 = new FormReferralEdit(refCur); //the ReferralNum must be added here FormRE2.IsNew = referralIsNew; FormRE2.ShowDialog(); if (FormRE2.DialogResult == DialogResult.Cancel) { return; } if (IsSelectionMode) { if (IsDoctorSelectionMode && !FormRE2.RefCur.IsDoctor) { MsgBox.Show(this, "Please select a doctor referral."); gridMain.SetSelected(false); //Remove selection to prevent caching issue on OK click. This line is an attempted fix. FillTable(); return; } SelectedReferral = FormRE2.RefCur; DialogResult = DialogResult.OK; return; } else { FillTable(); for (int i = 0; i < listRef.Count; i++) { if (listRef[i].ReferralNum == FormRE2.RefCur.ReferralNum) { gridMain.SetSelected(i, true); } } } }