いくつかの異なるクリック イベントに同じコードを使用し始めていることがわかりました。私は MDI フォームを持っており、マスターに関連付けられた他の子を開く「マスターの子」と呼んでいます。これは進行中のマスター/詳細です。たとえば、Company マスターの子には、Company に関連付けられた Contact、Industry などを開くためのボタンがあります。以下は、Contact 子フォームを開くコードのサンプルです。このコードは、他のコードにも使用されています。
私が探しているのは、1 つだけを使用して、ボタン、フォーム、メッセージ、および Company と Contact の間の接続ラベルを入力できるようにすることです。ボタンのコードは私がこれまでに持っていたもので、探しているもので変更する必要がある行をマークしました。単一矢印の線は機能しているように見えますが、複数矢印の線は正しく動作しません。比較のために両方を提供します。
誰かがこれ/これらを見て、統合されたコードで何が間違っているか (または欠落しているか) を確認できますか?
ありがとう...ジョン
//お問い合わせフォームを開くコード
private void btnCompanyContact_Click(object sender, EventArgs e)
{
bool isOpen = false;
foreach (Form f in Application.OpenForms)
{
if (f is frmContact)
{
isOpen = true;
MessageBox.Show("The Contact list is already open.", "INFORMATION", MessageBoxButtons.OK);
f.BringToFront();
f.Controls["lblRecordID"].Text = lblCompanyID.Text;
break;
}
}
if (!isOpen)
{
frmContact contact = new frmContact();
contact.MdiParent = this.MdiParent;
contact.ReceiveValue(lblCompanyID.Text);
contact.StartPosition = FormStartPosition.Manual;
contact.Location = new Point(100, 100);
contact.Show();
}
else
{
//do nothing
}
}
//すべてのボタン開口部をこのルーチンに統合する
private void OpenCompanyInformationForm(Button btn, Form name, string message, string lbl)
{
bool isOpen = false;
foreach (Form f in Application.OpenForms)
{
-> if (f == name)
{
isOpen = true;
-> MessageBox.Show("The " + message + " list is already open.", "INFORMATION", MessageBoxButtons.OK);
f.BringToFront();
-> f.Controls[lbl].Text = lblCompanyID.Text;
break;
}
}
if (!isOpen)
{
->->-> frmContact contact = new frmContact();
contact.MdiParent = this.MdiParent;
contact.ReceiveValue(lblCompanyID.Text);
contact.StartPosition = FormStartPosition.Manual;
contact.Location = new Point(100, 100);
contact.Show();
}
else
{
//do nothing
}
}