0

ユーザーページと管理者ページの両方を持つプログラムがあります。ユーザーまたは管理者は、郵便番号検索ページに移動できます。その郵便番号検索ページには、戻るボタンがあります。プログラムがユーザーをユーザーページに戻し、管理者を管理ページに戻すようにしたい。つまり、C# Windows フォーム プログラムでユーザー/管理者を前のページに戻すにはどうすればよいでしょうか。

また、郵便番号ページのどこにも、ユーザーと管理者の間に違いはありません。ActiveForm.Hide();それは、同じ情報をMyAdmin.Show;含むまったく同じページif - elseです。

ログイン ステータス (ユーザーまたは管理者) をある種のパブリック メソッドとして設定し、それを使用する必要がありますか? もっと簡単な方法があるかもしれないと感じています。

4

1 に答える 1

1

郵便番号検索ページを表示するときに、現在のフォームを Show() メソッドに渡すだけです。これにより、Owner() プロパティが設定されます。

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Show(this); // pass in the owner
    }

}

これで、2 番目のフォームでそれを確認し、必要に応じてそのフォームを非表示/表示できます。

public partial class Form2 : Form
{

    public Form2()
    {
        InitializeComponent();
        this.Shown += new EventHandler(Form2_Shown);
        this.FormClosed += new FormClosedEventHandler(Form2_FormClosed);
    }

    void Form2_Shown(object sender, EventArgs e)
    {
        if (this.Owner != null)
        {
            this.Owner.Hide();
        }
    }

    void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        if (this.Owner != null)
        {
            this.Owner.Show();
        }
    }

}

これは FormClosed() イベントから行う必要はありません。戻るボタンから行うこともできます。

于 2013-11-10T21:38:04.033 に答える