狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

C# 使用 WinForm MDI 模式管理多個(gè)子窗體程序的詳細(xì)步驟

admin
2024年12月12日 8:43 本文熱度 650

前言

嗨,各位碼農(nóng)們!今天我們要來聊聊如何在 C# 的 WinForms 應(yīng)用程序中用 MDI(Multiple Document Interface)模式來優(yōu)雅地管理多個(gè)子窗體。

如果你曾經(jīng)對(duì)著一堆亂七八糟的窗體不知所措,或者想要讓你的應(yīng)用程序看起來更專業(yè)一點(diǎn),那么這篇文章就是為你準(zhǔn)備的!

想象一下,當(dāng)你打開一個(gè)應(yīng)用,所有的子窗體都乖乖地呆在一個(gè)主窗口里面,是不是感覺棒極了?好了,廢話不多說,讓我們開始吧!

Step By Step 步驟

  1. 創(chuàng)建一個(gè) WinForm 類型的項(xiàng)目

  2. 添加三個(gè) Windows 窗體

    • FrmMain.cs(主窗體)
    • FrmTest1.cs(這倆是小弟,也就是子窗體)
    • FrmTest2.cs
  3. 打開 FrmMain 窗體設(shè)計(jì)器,修改以下屬性

    • Text: MDI 主窗體
    • Size: 1000,600
    • StartPosition: CenterScreen
    • IsMdiContainer: True(重要,將窗體設(shè)置為 MDI 容器
    • 其它屬性默認(rèn)值即可
  4. 拖拽一個(gè) MenuStrip 控件到 FrmMain 窗體設(shè)計(jì)器里,并將 MenuStrip 控件改名為 MenuFuns

  5. 在 FrmMain 窗體設(shè)計(jì)器里輸入兩個(gè)菜單項(xiàng):

    • 打開窗體1,同時(shí)將菜單項(xiàng)改名為 menuOpenWin1
    • 打開窗體2,同時(shí)將菜單項(xiàng)改名為 menuOpenWin2
  6. 分別雙擊這兩個(gè)菜單項(xiàng),自動(dòng)生成菜單項(xiàng)的單擊事件,如:

    private void menuOpenWin1_Click(object sender, EventArgs e)
    {
     
    }

    private void menuOpenWin2_Click(object sender, EventArgs e)
    {
     
    }
  7. 在這兩個(gè)事件里寫上打開相應(yīng)子窗體的代碼,最終代碼如下:

    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 MRHelper
    {
     public partial class FrmMain : Form
     {
      public FrmMain()
      {
       InitializeComponent();
      }

      private void menuOpenWin1_Click(object sender, EventArgs e)
      {
       var frm = new FrmTest1();   // 實(shí)例化子窗體
       frm.MdiParent = this;   // 讓子窗體知道它的老大是誰
       frm.MinimizeBox = false// 不要最小化按鈕 
       frm.MaximizeBox = false// 也不要最大化按鈕
       frm.StartPosition = FormStartPosition.CenterScreen; // 居中顯示
       frm.Show();     // 顯示子窗體
      }

      private void menuOpenWin2_Click(object sender, EventArgs e)
      {
       var frm = new FrmTest2();
       frm.MdiParent = this;
       frm.MinimizeBox = false;
       frm.MaximizeBox = false;
       frm.StartPosition = FormStartPosition.CenterScreen;
       frm.Show();
      }
     }
    }
  8. 打開 Program.cs 文件,設(shè)置啟動(dòng)窗體為 FrmMain 窗體,如:

    Application.Run(new FrmMain());
  9. 至此,一切準(zhǔn)備就緒,按 F5 或點(diǎn)擊運(yùn)行按鈕,然后點(diǎn)擊菜單,就可以看到子窗體一個(gè)個(gè)乖乖地出現(xiàn)了!

總結(jié)

WinForm MDI 模式就像是窗體管理大師,讓多個(gè)子窗體井然有序地排列在一個(gè)主窗體之下,既美觀又實(shí)用,減少了視野中的混亂,在這個(gè)統(tǒng)一的界面里,用戶就能輕松上手,享受程序帶來的便利,各位小窗體還有機(jī)會(huì)共享主窗體的資源,真是個(gè)團(tuán)寵。

當(dāng)然,多個(gè)子窗體的管理也會(huì)帶來一些小挑戰(zhàn),像是每個(gè)子窗體的生命周期管理,還有子窗體之間需要傳遞的參數(shù)、事件,若管理失當(dāng),可能導(dǎo)致代碼變得像戰(zhàn)場一樣亂七八糟,甚至引發(fā)內(nèi)存泄漏的悲劇。

不過,別擔(dān)心,MDI 模式在適合多文檔處理的場景中絕對(duì)是一種強(qiáng)大的設(shè)計(jì)模式。在設(shè)計(jì)與實(shí)現(xiàn)時(shí),只需綜合考慮業(yè)務(wù)流程邏輯,就能避免那些小小的 "安全隱患" 了。


該文章在 2024/12/13 9:31:10 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved