I would like to manage Form1 from Form2

So, I want the user to log in first in order to use a different form. However, my dilemma is that the form entry field is Form2, and the main form is Form1.

if ((struseremail.Equals(username)) && (strpasswd.Equals(password)))
{
  MessageBox.Show("Logged in");
  form1.Visible = true;
  form1.WindowState = FormWindowState.Maximized;
}
else
{
  MessageBox.Show("Wow, how did you screw this one up?");
}

However, Form1 does not become visible (since I run it as visble = false) after login. Can anyone help?

EDIT:

A brilliant answer, but my problem is still here. I basically want to download Form2 First (which is easy to run Form1 and hide it). But when Form2 is closed, I want to close Form1 as well.

private void Form2_FormClosing(Object sender, FormClosingEventArgs e)
{
  Form1 form1 = new Form1();
  form1.Close();
  MessageBox.Show("Closing");
}

this does not work...

+5
source share
2 answers

, . , . .

// 1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm = new Form2(this);
        frm.Show();
    }

    public string LabelText
    {
        get { return Lbl.Text; }
        set { Lbl.Text = value; }
    }
}

// 2

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private Form1 mainForm = null;
    public Form2(Form callingForm)
    {
        mainForm = callingForm as Form1; 
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.mainForm.LabelText = txtMessage.Text;
    }

    //Added later, closing Form1 when Form2 is closed.
    private void Form2_FormClosed(object sender, FormClosedEventArgs e)
    {
        mainForm.Close();
    }
}

alt text http://demo.ruchitsurati.net/files/frm1.png

alt text http://demo.ruchitsurati.net/files/frm2.png

+10

Form1.visible = true;, Form1.Show();, form2

, , form2 program.cs.

static void Main()
{
    Application.Run(new Form2());
}

, ,

form1.Show();
this.Hide(); // this part is up to you

, form2, / , 1, :

newform1.FormClosed += delegate(System.Object o, FormClosedEventArgs earg)
               { this.Close(); };

2, 1

form1.Show() , this.Close(); 2. form2 FormClosed: , 2 form1 . .

EDIT: form2 form1. form2 , (). , form2, , form1 , form1 . 1, .

0

All Articles