Because you use:

Login log = new Login();

In MainForm but you declare:

public Login(MainForm APrent):this()

Which LoginForm need APrent value that is MainForm.
To solve change to this:

Login log = new Login(this);


But, I recommend u to use MdiParent instead.

1. Remove the "private static new MainForm ParentForm = null;" no need
to use this.
2. login constructor: let it default constructor (no parameter):
"public Login()"
3. To disable the menu use like this: (Im not sure your main form type
is Main or MainForm based on your code, I assume Main)

Main ParentForm = (Main) this.MdiParent
ParentForm.menuStrip1.Enabled = False

dont use ! for toggle it, it can be wrong toggle, instead, assign true
or false if you sure.


On May 14, 4:01 pm, sahm <[email protected]> wrote:
> Hi Benj Nunez
>
> Good Day
>
> I try to do that but some error show up
> and this is my code
>
> the child form
> ////////////////////////////////////////////////////
>
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
>
> namespace Archive_System
> {
>     public partial class Login : Form
>     {
>         public Login()
>         {
>             InitializeComponent();
>         }
>         private static new MainForm ParentForm = null;
>
>         public Login(MainForm APrent):this()
>         {
>             ParentForm = APrent;
>         }
>
>         private void OKbutton_Click(object sender, EventArgs e)
>         {
>             string un = userNametextBox.Text;
>             string ps = PasswardMaskedTextBox.Text;
>
>             if (un == "sahm" || ps == "java")
>             {
>                 MessageBox.Show(this, "Login Work", "",
> MessageBoxButtons.OK, MessageBoxIcon.Information);
>                 ParentForm.menuStrip1.Enabled = !
> ParentForm.menuStrip1.Enabled;
>
>             }
>             else
>             {
>                 MessageBox.Show(this, "Login not work", "",
> MessageBoxButtons.OK, MessageBoxIcon.Information);
>             }
>
>         }
>
>         private void CancelButton_Click(object sender, EventArgs e)
>         {
>             this.Close();
>         }
>
>     }
>
> }
>
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
> the main form
> //////////////////////////////////////////////////
>
> using System;
> using System.Collections.Generic;
> using System.ComponentModel;
> using System.Data;
> using System.Drawing;
> using System.Linq;
> using System.Text;
> using System.Windows.Forms;
> using System.Management;
>
> namespace Archive_System
> {
>     public partial class Main : Form
>     {
>         public Main()
>         {
>             try
>             {
>                 InitializeComponent();
>                 this.WindowState = FormWindowState.Maximized;
>                 this.FormBorderStyle = FormBorderStyle.FixedSingle;
>                 this.Closing += new CancelEventHandler(Form_Closing);
>
>                 this.menuStrip1.Enabled = false;
>                 //this.Enabled = false;
>                 checkUser();
>             }
>             catch (Exception exp)
>             {
>                 string ms = exp.Message;
>                 MessageBox.Show(this, ms, "System Error",
> MessageBoxButtons.OK, MessageBoxIcon.Error);
>
>             }
>         }
>
>         System.Data.SqlClient.SqlConnection con;
>
>         private void userToolStripMenuItem_Click(object sender,
> EventArgs e)
>         {
>             try
>             {
>                 createUser cu = new createUser();
>                 cu.MdiParent = this;
>                 cu.Show();
>
>             }
>             catch (Exception exp)
>             {
>                 string ms = exp.Message;
>                 MessageBox.Show(this, ms, "System Error",
> MessageBoxButtons.OK, MessageBoxIcon.Error);
>             }
>         }
>
>         private void aboutToolStripMenuItem_Click(object sender,
> EventArgs e)
>         {
>             About ab = new About();
>             ab.MdiParent = this;
>             ab.Show();
>         }
>         /*public void setPreviousForm(frmMain mainFrm)
>         {
>             prevForm = mainForm;
>         }*/
>         public void checkUser()
>         {
>             Login log = new Login();
>             //log.setPreviousForm(this);
>             log.ShowDialog(this);
>
>         }
>
>         private void Main_Load(object sender, EventArgs e)
>         {
>             con = new System.Data.SqlClient.SqlConnection();
>             con.ConnectionString = "Data Source=mr-x\
> \SQLExpress2008;Initial Catalog=archive;Integrated Security=True";
>             con.Open();
>
>         }
>
>         public void Form_Closing(object sender, CancelEventArgs cArgs)
>         {
>             con.Close();
>
>         }
>
>         private void menuStrip1_ItemClicked(object sender,
> ToolStripItemClickedEventArgs e)
>         {
>
>         }
>
>     }
>
> }
>
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>
> and this is the error message
>
> ///////////////////////////////////////////
> Error   1       The type or namespace name 'MainForm' could not be found (are
> you missing a using directive or an assembly reference?)        E:\Projects\C#
> \Archive System\Archive System\Login.cs 18      28      Archive System
>
> Error   2       The type or namespace name 'MainForm' could not be found (are
> you missing a using directive or an assembly reference?)        E:\Projects\C#
> \Archive System\Archive System\Login.cs 20      22      Archive System
>
> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
>
> thank you for your help
> Bes
> Salim
> On May 14, 3:55 am, Benj Nunez <[email protected]> wrote:
>
> > You're welcome. :-)
>
> > On May 13, 5:03 pm, sahm <[email protected]> wrote:
>
> > > Hi Benj Nunez
>
> > > thank you for your help
>
> > > Salim
>
> > > On May 5, 1:02 pm, Benj Nunez <[email protected]> wrote:
>
> > > > Here's how:
>
> > > > To begin with, let's assume you already have Form1 which has the
> > > > menustrip. Make sure
> > > > the modifier of your menustrip is set to public. We will construct
> > > > Form2 (the childform):
>
> > > > 1) Create a Newform(the childform)
> > > > 2) declare a Form1 variable in your childformlike:
>
> > > >     private static new Form1 ParentForm = null;
>
> > > > 3) define a second constructor, with Form1 as a parameter, like:
>
> > > >         public Form2(Form1 AParent): this()
> > > >         {
> > > >             ParentForm = AParent;
> > > >         }
>
> > > > 4) drag a button in your childform.
> > > > 5) double click your button and type this:
>
> > > >         private void btnEnable_Click(object sender, EventArgs e)
> > > >         {
> > > >             ParentForm.menuStrip1.Enabled = !
> > > > ParentForm.menuStrip1.Enabled;
> > > >         }
>
> > > > Now go back to your Form1 class to instantiate Form2. In this example,
> > > > put
> > > > a button in Form1. Double-click the button in Form1 and add this code:
>
> > > >             Form2 form2 = new Form2(this);
> > > >             form2.ShowDialog();
>
> > > > Pass "this" to Form2. "this" refers to the Form1 instance. It allows
> > > > you
> > > > to access any controls in Form2. Provided that the controls in Form1
> > > > have
> > > > their modifiers set to public.
>
> > > > Hope this helps.
>
> > > > Benj
>
> > > > On May 3, 9:31 pm, sahm <[email protected]> wrote:
>
> > > > > Hi every one
> > > > > How to can IenableordisableMenuStripin ParentFormfrom chiliad
> > > > >form
> > > > > Best
> > > > > Salim

Reply via email to