2018-12-07

《2.3 系統(tǒng)主界面的制作》

1.效果圖

圖1.gif

圖2.gif

2.實(shí)現(xiàn)MDI主界面的主要步驟

項(xiàng)目一:

1.新建MDI容器窗體: 只要將窗體的IsMdiContainer屬性設(shè)置為T(mén)rue,它就是容器窗體。一種是在窗體的Load()事件中設(shè)置,一種是在屬性中設(shè)置:
this.IsMdiContainer=True;
容器窗體在顯示后,其客戶(hù)區(qū)是凹下的,等待子窗體顯示在下凹區(qū)。不要在容器窗體的客戶(hù)區(qū)設(shè)計(jì)任何控件,并添加相應(yīng)控件。
2.新建MDI子窗體:MDI子窗體就是一般的窗體,其上可以設(shè)計(jì)任何控件,此前設(shè)計(jì)過(guò)的任何窗體都可以作為MDI子窗體。只要將某個(gè)窗體實(shí)例的MdiParent屬性設(shè)置到一個(gè)MDI父窗體,它就是那個(gè)父窗體的子窗體,語(yǔ)法為:

  1. 窗體實(shí)例名.MdiParent=父窗體對(duì)象;

項(xiàng)目二:

1.新建窗體:用戶(hù)登錄主界面,庫(kù)管員登錄主界面,收銀員登錄主界面,添加控件。
2.添加代碼:任務(wù)描述:在LoginForm中點(diǎn)擊登錄按鈕,進(jìn)入MainFormUser,同時(shí)隱藏LoginForm。登錄用戶(hù)名傳遞到MainFormUser中顯示。
實(shí)現(xiàn):在LoginForm的登錄方法中,添加如下代碼:


image.png

在MainFormUser窗體中添加:


image.png

3主界面中涉及到的控件以及控件的重要屬性、方法

項(xiàng)目一:

MenuStrips屬性:
Name 菜單對(duì)象名稱(chēng)
Items 菜單中顯示的項(xiàng)的
DropDownItems 下級(jí)菜單項(xiàng)的集合
Text 菜單顯示的文本
MenuStrips事件:
Click 菜單項(xiàng)單擊

項(xiàng)目二:

Timer控件,計(jì)時(shí)器,用于需要按一定時(shí)間間隔周期性執(zhí)行某事件的場(chǎng)合,
是一個(gè)非可視化的控件。
常用屬性和事件
屬性
Enabled 設(shè)置Timer是否啟用,值為T(mén)rue/False
Interval 設(shè)置定時(shí)器兩次Tick事件發(fā)生的時(shí)間間隔,單位:毫秒
事件
Tick 每個(gè)Interval時(shí)間后觸發(fā)一次該事件
方法
Start() 啟動(dòng)定時(shí)器。調(diào)用格式:Timer控件名.Start();
Stop() 停止定時(shí)器。調(diào)用格式:Timer控件名.Stop();

4.主界面的功能如何與系統(tǒng)結(jié)構(gòu)圖對(duì)應(yīng)

image.png

5.貼入重要代碼片段,并進(jìn)行詳細(xì)描述

項(xiàng)目一:

在formchild窗體中添加
FormChild frmChild = new FormChild();
frmChild.MdiParent = this;
frmChild.Show();

項(xiàng)目二:

    // 窗口加載時(shí),設(shè)置默認(rèn)角色為“收銀員”
    private void LoginForm_Load(object sender, EventArgs e)
    {
        this.cbb_Type.SelectedIndex = 0;
    }

    // 點(diǎn)擊“登錄”按鈕則登錄系統(tǒng)
    private void bt_Login_Click(object sender, EventArgs e)
    {
        if (this.cbb_Type.SelectedItem.ToString() == "收銀員")
        {
            if (this.tb_User.Text == "123456" && this.tb_Password.Text == "123456")
            {
                MessageBox.Show("收銀員登錄成功");

                // 顯示收銀員主界面
                MainFormUser formUser = new MainFormUser();
                formUser.userName = this.tb_User.Text.ToString();
                formUser.Show();

                // 隱藏登錄界面
                this.Hide();
            }
            else
            {
                MessageBox.Show("用戶(hù)名或密碼錯(cuò)誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        if (this.cbb_Type.SelectedItem.ToString() == "庫(kù)管員")
        {
            if (this.tb_User.Text == "admin" && this.tb_Password.Text == "admin")
            {
                MessageBox.Show("庫(kù)管員登錄成功");

                // 顯示庫(kù)管員主界面
                MainFormAdmin formAdmin = new MainFormAdmin();
                formAdmin.userName = this.tb_User.Text.ToString();
                formAdmin.Show();

                // 隱藏登錄界面
                this.Hide();
            }
            else
            {
                MessageBox.Show("用戶(hù)名或密碼錯(cuò)誤", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    }

    // 點(diǎn)擊“退出”按鈕則退出應(yīng)用程序
    private void bt_Exit_Click(object sender, EventArgs e)
    {
        Application.Exit();
    }

    // 在用戶(hù)名輸入框中按“回車(chē)”,光標(biāo)跳轉(zhuǎn)到密碼輸入框
    private void tb_User_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            SendKeys.Send("{tab}");
        }
    }

    // 在密碼輸入框中按“回車(chē)”,則直接登錄
    private void tb_Password_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            this.bt_Login_Click(sender, e);
        }
    }

    // Tab進(jìn)入用戶(hù)名輸入框時(shí),自動(dòng)全選用戶(hù)名
    private void tb_User_Enter(object sender, EventArgs e)
    {
        ((TextBox)sender).SelectAll();
    }

    // Tab進(jìn)入密碼輸入框時(shí),自動(dòng)全選密碼
    private void tb_Password_Enter(object sender, EventArgs e)
    {
        ((TextBox)sender).SelectAll();
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容