日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 使用 WinForm MDI 模式管理多個子窗體程序的詳細步驟

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

前言

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

如果你曾經對著一堆亂七八糟的窗體不知所措,或者想要讓你的應用程序看起來更專業一點,那么這篇文章就是為你準備的!

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

Step By Step 步驟

  1. 創建一個 WinForm 類型的項目

  2. 添加三個 Windows 窗體

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

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

  5. 在 FrmMain 窗體設計器里輸入兩個菜單項:

    • 打開窗體1,同時將菜單項改名為 menuOpenWin1
    • 打開窗體2,同時將菜單項改名為 menuOpenWin2
  6. 分別雙擊這兩個菜單項,自動生成菜單項的單擊事件,如:

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

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

    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();   // 實例化子窗體
       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 文件,設置啟動窗體為 FrmMain 窗體,如:

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

總結

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

當然,多個子窗體的管理也會帶來一些小挑戰,像是每個子窗體的生命周期管理,還有子窗體之間需要傳遞的參數、事件,若管理失當,可能導致代碼變得像戰場一樣亂七八糟,甚至引發內存泄漏的悲劇。

不過,別擔心,MDI 模式在適合多文檔處理的場景中絕對是一種強大的設計模式。在設計與實現時,只需綜合考慮業務流程邏輯,就能避免那些小小的 "安全隱患" 了。


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

主站蜘蛛池模板: 国产精品v日韩精品 | 国产噜噜噜精品免费 | 岛国大片网站在线观看 | 精品一区精品二区 | 好吊视频一区二区三区 | 中文字幕亚洲无限码 | 色一情一乱一伦一区二区三区 | 免费国产自线拍 | 国产综合色在 | 北京国贸大酒店张津 | 亚洲中文波霸中文字幕 | 欧美日韩精品一区二区三区视 | 亚洲国产精品自在拍在线播放 | 美女视频免费观看网站黄 | 2025国产精品香蕉在线观看 | 日本高清视频在线www色下载 | 99精品国产在热 | 午夜男女爽爽羞羞影院在线观看 | 自偷自拍 | 污污污视频在线免费观看 | 国产高清在线观看无删减 | 国产精品91在 | 香蕉国产一区二区 | 男女超爽视频免费播放 | 亚洲人成亚洲精品 | 果冻传媒一区二区天美传媒 | 日韩不卡在线视频 | 91尤物国产 | 亚洲中文字幕无线 | 日韩美女网站在线看 | 亚洲成片在线观看12345 | 亚洲v高清免费在线观看 | 免费看涩涩视频网站入口 | 性爱网在线免费 | aaaa级少 | 自产拍在线观看 | 国产寡妇偷人在线观看 | 色片在线观看 | 欧美伦理电影大全 | 国产一区视 | 亚洲v日韩v欧美高清在线观看 |