Croviajo
Croviajo

Reputation: 249

how to enable a form from another form

I created two forms: a login form, and a main form that is displayed when I start debugging. when loading the main form the login form also loaded. Now my question is, I want to disable the main form when the login form is loaded. if the connection is successful, the main form must be enabled, otherwise it should be disabled.

I tried this code :

MainFrm .cs :

private void Form1_Load(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
c.Enabled = false;
Connectez ConnectezFrm = new Connectez { TopMost = true, Owner = this };
ConnectezFrm.Show();
}

Connectez.cs :

private MainFrm objMainfrm { get; set; }
public Connectez(MainFrm objfrm)
{
objMainfrm = objfrm;
InitializeComponent();
}
....
....
private void simpleButton1_Click(object sender, EventArgs e)
{
foreach (Control c in objMainfrm.Controls)
c.Enabled = true;
this.Close();
}

Upvotes: 1

Views: 3397

Answers (2)

Eric J.
Eric J.

Reputation: 150198

You don't need to disable individual controls on a form to disable the form. You could use

objMainForm.Enabled = false;

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled

However, what you really want to do in your case is just show a modal dialog. Use

ConnectezFrm.ShowDialog();

Modal dialogs prevent interaction with their parent while they are active.

Also it looks like you tried to achieve this by passing a reference to your main form to the child form:

public Connectez(MainFrm objfrm)

That is not necessary to get a modal dialog effect.

If you need to take some action if the connection fails, you can return a DialogResult from Connectez. Check that DialogResult like this:

DialogResult dr = ConnectezFrm.ShowDialog();
if (dr != DialogResult.OK) {
    // Do something e.g. disable certain parts of the form
    // Be sure to leave a button or something enabled to load ConnectezFrm again :-)
}

Upvotes: 2

Stu
Stu

Reputation: 15779

Use ShowDialog(this) instead of Show().

Upvotes: 3

Related Questions