I cant enable my controls in formmain when i logined

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • huelee
    New Member
    • Jul 2012
    • 1

    I cant enable my controls in formmain when i logined

    Code:
    //in form login 
    public partial class frmLogin : Form
        {
            private FormMain _frm;
            public frmLogin(FormMain frm)
            {
                InitializeComponent();
                _frm = frm;
            }
    
    	 private void btnLogin_Click(object sender, EventArgs e)
            {
    	
    	bool CurrentLogin = false;
                    CurrentLogin = Login(txtUserName.Text, txtPassword.Text);
                    if (CurrentLogin == true)
                    {
    			//((FormMain)MdiParent).tsOPDIPD.Enabled = true;
    			_frm.Controls["tsOPDIPD"].Enabled = true;
    			this.hide();
    		}
    	}
    }
    
    
    //in form Main
    public partial class FormMain : Form
        {
            public FormMain()
            {
                InitializeComponent();
            }
    
     	private void FormMain_Load(object sender, EventArgs e)
    
            {
    		tsOPDIPD.Enabled = false;
    
    		frmLogin frm = new frmLogin(this);
                	frm.ShowDialog();
                	frm.MdiParent = this;
    	}
    }
    Error on "_frm.Contr ols["tsOPDIPD"].Enabled = true;" like this: Object reference not set to an instance of an object.

    Please help me.
    Last edited by PsychoCoder; Jul 8 '12, 07:02 PM. Reason: Code tags added
  • Aimee Bailey
    Recognized Expert New Member
    • Apr 2010
    • 197

    #2
    Maybe this will help:

    Code:
    private void btnLogin_Click(object sender, EventArgs e)
    {
        if(_frm == null)
        {
            MessageBox.Show("Variable _frm was never set.");
        }
    
        if(Login(txtUserName.Text, txtPassword.Text))
        {
            _frm.tsOPDIPD.Enabled = true;
            this.hide();
        }
    }
    The error you received usually means that either _frm or _frm.Controls["tsOPDIPD"] does not exist, when I rely on a variables being set like that, I find it useful to add a bit of error checking before I use them.

    Also note, that you could also validate to see weather tsOPDIPD exists within the Controls collection by using the following:

    Code:
    if(_frm.Controns.ContainsKey("tsOPDIPD"))
    {
        // stuff if the control key exists
    }
    All the best.

    Aimee

    Comment

    Working...