Код «Скрыть и показать» не работает с другими формами - PullRequest
1 голос
/ 11 октября 2019

В форме 1

public void button1_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection(@"Data Source=.\ALLENSQL;Initial Catalog=TITOMSLogin;Integrated Security=True");
            SqlDataAdapter sdf = new SqlDataAdapter("select usertype, fullname, position from login where username= '" + txtuser.Text + "' and password='" + txtpass.Text + "'", con);
            DataTable dt = new DataTable();
            sdf.Fill(dt);
            string fullname = dt.Rows[0]["FullName"].ToString();
            string position = dt.Rows[0]["Position"].ToString();
            if (dt.Rows.Count == 1)
             {
                 this.Hide();
                 if (dt.Rows[0]["Usertype"].ToString() == "Admin")
                 {
                    Form2Admin ss = new Form2Admin(position + ": " + fullname);
                    Form3Admin sa = new Form3Admin(position + ": " + fullname);
                    Form5 sw = new Form5(position + ": " + fullname);
                    ss.Show();
                    sa.Hide();
                    sw.Hide();
                 }

теперь этот код не работает в других формах

        private void button2_Click(object sender, EventArgs e)
        {
            this.Hide();
            Form3Admin.Show();
        }

Вот сценарии, которые я пытаюсь достичь:

  1. После нажатия появится форма входа 2, форма 3 и форма 4 будут скрыты.
  2. кнопка в форме 2 - это нажатие (форма 2 скрывается, форма 3 отображается).
  3. кнопкав форме 3 нажмите (форма 3 будет скрыта, появится форма 4).
  4. кнопка в форме 4 будет нажата (форма 4 будет скрыта, форма 2 будет отображаться, но все данные, записанные ранее, все еще должны быть там) итак далее к другим формам.

1 Ответ

0 голосов
/ 11 октября 2019

Вы должны использовать тот же фактический Form3Admin экземпляр, чтобы показать его. Сохраните экземпляр Form3Admin sa как переменную класса и используйте этот экземпляр, когда хотите его показать.

private void button2_Click(object sender, EventArgs e)
{
    this.Hide();
    sa.Show();
}
...