如何在登录后以MDI形式打开另一个表单? [英] How to open another form in MDI form after login?

查看:91
本文介绍了如何在登录后以MDI形式打开另一个表单?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的MDI表格上有这个:

I have this on my MDI form:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FTEMPC_SalesAndInventory
{
    public partial class mdiMain : Form
    {

        frmLogin frm = new frmLogin();
        public mdiMain()
        {
            InitializeComponent();
        }

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
            
        }

        private void dashboardToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmAdmin_Module frm = new frmAdmin_Module();
            frm.Show();
            frm.MdiParent = this;
        }
        private void clickToolStripMenuItem(object sender, EventArgs e)
        {
            ToolStripMenuItem tool = sender as ToolStripMenuItem;
            new disableAdminMenus().callForms(this, tool);

        }
        private void mdiMain_Load(object sender, EventArgs e)
        {
//hide menubar first for login
            mStrip_mdi.Visible = false;

            WindowState = FormWindowState.Maximized;
//show login window
            frm.Show();
            frm.MdiParent = this;

//after successful login
            if (frm.emp_designation.Equals("Sales"))
            {
                ToolStripMenuItem[] tools = { viewToolStripMenuItem, manageToolStripMenuItem, dashboardToolStripMenuItem };
                new disableAdminMenus().disableAdminMenuItems(tools);

                frmClerk_Main frm = new frmClerk_Main();
                frm.Show();
                frm.MdiParent = this;
            }
            else if (frm.emp_designation.Equals("Inventory"))
            {

                manageToolStripMenuItem.Visible = true;
                purchaseOrdersToolStripMenuItem.Visible = true;
                categoryUnitToolStripMenuItem.Visible = true;

                companyInformationToolStripMenuItem.Visible = false;
                supplierInformationToolStripMenuItem.Visible = false;
                employeeInformationToolStripMenuItem1.Visible = false;
                backupRestoreToolStripMenuItem.Visible = false;

                frmProductManagement frmprod = new frmProductManagement();
                frmprod.Show();
                frmprod.MdiParent = this;

            }
            else if (frm.emp_position.Equals("Admin"))
            {
                ToolStripMenuItem[] tools = { viewToolStripMenuItem, manageToolStripMenuItem, dashboardToolStripMenuItem };
                new disableAdminMenus().enableAdminMenuItems(tools);
                frmAdmin_Module frmadmin = new frmAdmin_Module();
                frmadmin.Show();
                frmadmin.MdiParent = this;
            }
        }

        private void logOutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult dialog = MessageBox.Show("Are you sure you want to log out?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dialog == DialogResult.Yes)
            {
                string date = DateTime.Now.ToString("MM/dd/yyyy");
                string time = DateTime.Now.ToString("h:mm:ss tt");
                string action = "Logged out.";
                OO_Methods.audit_trans(time, date, action, new frmLogin().au_uname);
                new frmLogin().Show();
                this.Hide();
            }
        }

        private void exitToolStripMenuItem_Click_1(object sender, EventArgs e)
        {
            DialogResult dialog2 = MessageBox.Show("Are you sure you want to exit the application?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dialog2 == DialogResult.Yes)
            {
                string date = DateTime.Now.ToString("MM/dd/yyyy");
                string time = DateTime.Now.ToString("h:mm:ss tt");
                string action = "System Exit";
                OO_Methods.audit_trans(time, date, action, new frmLogin().au_uname);
                Application.Exit();
            }
        }

        private void reportToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmReport_FINAL frm = new frmReport_FINAL();
            frm.Show();
            frm.Parent = this;
        }

        private void auditTrailToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            frmAuditTrail_FINAL frm = new frmAuditTrail_FINAL();
            frm.Show();
            frm.Parent = this;
        }

        private void mStrip_mdi_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }
    }
}







登录表单在MDI中打开。但成功登录后,我将如何显示下一个表格?这取决于用户的登录凭据,将显示哪种表单。如果是admin,管理员模块。如果销售,交易。如果库存,产品管理模块。哪些都在if-else声明中。



我尝试过:



我试过添加




The login form opens within the MDI. But after a successful login, how will I show the next form? It depends on the login credentials of the user which form will be shown. if admin, admin module. if sales, transaction. if inventory, product management module. Which are inside the if-else statement.

What I have tried:

I have tried adding

this.Hide();

到我的登录表单后,说明登录成功的消息框。 frmlogin变得隐藏但是下一个表单没有出现。

to my login form after the messagebox that says the login is successful. The frmlogin becomes hidden but the next form doesn't show up.

推荐答案

你是否在按照MSDN调用show之前设置了mdi parent?





创建MDI子表单 [ ^ ]
Have you tried setting mdi parent before calling show as per MSDN?


Creating MDI Child Forms[^]


这篇关于如何在登录后以MDI形式打开另一个表单?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆