問題は、あなたがfrmUser
の間違ったinstaceを隠そうとしているということです。最初のコードの通し番号がクラスfrmPass
の内部にあると仮定します。ここで、非表示にしようとする新しいインスタンスを作成します。しかし元のインスタンスを非表示にしたいとします。
Ninoが既に提案したように、DialogResult
を使用して管理者が確認されているかどうかを確認することもお勧めします。しかし、あなたはすでに別の仕組みを持っているかもしれません。それにもかかわらず、あなたはそれを閉じるためにfrmPass
で他のthis.Hide()
を残す
private void button1_Click(object sender, EventArgs e)
{
formPass pass = new formPass();
pass.ShowDialog();
if(AdminIsConfirmed)
{
this.Hide();
}
}
pass.ShowDialog();
の呼び出しの後、クラスfrmUser
に隠れコード行を配置する必要があります。
EDIT
別の可能性は、frmPass
のコンストラクタにfrmUser
インスタンスを通過しfrmPass
タイプfrmUser
の変数を持っていることであろう。あなたはそれをオーバーロードする必要があります。今、このような
public partial class formPass : Form
{
formUser us;
public formPass(/* all that stuff that you have plus*/, formUser us)
{
InitializeComponent();
this.us = us;
}
コールfrmPass
:
frmPass pass = new frmPass(lblAID.Text, lblName.Text, lblType.Text, "User Module", this);
今、あなただけの行削除することができます。
frmUser us = new frmUser(lblEID.Text, lblAdmin.Text, lblType.Text);
をし、全部が動作して非表示になりますが正しく。
コードがどこに配置されているかは不明です。最初の部分はどこですか? –