kmllev Ответов: 1

Как открыть другую форму в MDI-форме после входа в систему?


У меня есть это в моей форме MDI:
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. Но после успешного входа в систему, как я покажу следующую форму? Это зависит от учетных данных пользователя, который будет отображаться в форме. если админ, то админ-модуль. если продажа, то сделка. если инвентаризация, то модуль управления продуктом. Которые находятся внутри оператора if-else.

Что я уже пробовал:

Я пробовал добавлять
this.Hide();
в мою форму входа после сообщения messagebox, в котором говорится, что вход успешен. Frmlogin становится скрытым, но следующая форма не появляется.

1 Ответов

Рейтинг:
2

Sinisa Hajnal

Вы пробовали установить MDI parent перед вызовом show в соответствии с MSDN?


Создание дочерних форм MDI[^]