首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 將動態生成的 MenuStrip 封裝為可複用元件類別

     編輯:程式設計綜合問答

設計模式:Builder / 靜態工具類


public static class MenuFactory {
    public static MenuStrip CreateMainMenu(Form host, Action onItemClick) {
        var ms = new MenuStrip();
        var file = new ToolStripMenuItem("檔案");
        var exit = new ToolStripMenuItem("離開");
        exit.Click += (s, e) => host.Close();
        file.DropDownItems.Add(exit);
        ms.Items.Add(file);

        var edit = new ToolStripMenuItem("編輯");
        edit.DropDownItems.Add("複製", null, (s, e) => onItemClick(s));
        ms.Items.Add(edit);

        host.MainMenuStrip = ms;
        return ms;
    }
}

使用


public class MainForm : Form {
    public MainForm() {
        MenuFactory.CreateMainMenu(this, item => MessageBox.Show(item.Text));
    }
}

優點

  • 選單結構集中管理,易於維護與單元測試。
  • 支援依賴注入點擊處理邏輯,解耦 UI 與業務。
  • 避免在 Form 類別中堆疊大量 InitializeComponent 風格代碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved