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

C# 將動態選單建立邏輯封裝至獨立類別:傳入 Form 參數解決 this 參考問題

     編輯:程式設計綜合問答

問題

將 Form 的動態選單代碼移至獨立 .cs 類別時,this.Hide()、this.Controls.Add 等報錯,因為 this 不再是 Form 實例。

解決:傳入 Form 參考


public static class MenuBuilder {
    public static void Build(Form host) {
        var menu = new MenuStrip();
        var itemFile = new ToolStripMenuItem("檔案");
        menu.Items.Add(itemFile);
        host.Controls.Add(menu); // 使用 host 而非 this
        host.MainMenuStrip = menu;
    }
}

// Form 中呼叫
MenuBuilder.Build(this);

進階:事件綁定


itemFile.Click += (s, e) => {
    var frm = new SubForm();
    frm.Show();
    host.Hide(); // 隱藏主視窗
};
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved