簡體   English   中英

VS2017 C# 導入WinForms產生命名空間錯誤

[英]VS2017 C# Importing WinForms generates namespace errors

我有兩種解決方案,一種是功能性的,另一種是實驗性的。 我做了一些 forms 和我想從實驗導入到功能的代碼。

我按照此處找到的說明導入 forms。

  1. 從 Experimental 文件夾添加現有文件(cs、designer 和 resx)
  2. 從解決方案中排除它們
  3. 從功能文件夾中再次添加它們
  4. 完成(有點)

我遇到的是我需要更改 FormOne.Designer.cs 文件上的命名空間以匹配功能解決方案的命名空間:

namespace WindowsFormsApp1

變成:

namespace ProjName

這樣做並保存后,它適用於 FormOne。

但是對於 FormTwo 和 FormThree 遵循完全相同的程序(一次一個表單)失敗了。 當我嘗試構建或重建解決方案或項目時,我得到:

FormTwo.Dispose(bool): no suitable method found to override

FormTwo 和 FormThree 都出現同樣的錯誤。 我復制/粘貼了命名空間行,以確保在輸入時沒有打錯字。

Forms 使用partial class 功能將您編輯的代碼文件 ( Form1.cs ) 中的Form1與設計師編輯的文件 ( Form1.Designer.cs ) 中的Form1結合起來

設計器代碼覆蓋了Dispose() ,這是一個可以覆蓋的方法,因為 Form1.cs 中的Form1 class 繼承自Form ,后者具有可覆蓋的Dispose() 設計器文件中的partial class Form1不繼承任何東西(它也不能繼承Form ,因為這已經在Form1.cs中完成;你不能繼承兩次)

如果您在 Form1.cs class 中更改Form1 class 的命名空間而忘記更改 Form1.Designer.cs 中 class 的命名空間,您將在不同的命名空間中生成兩個名為Form1的類。 Form1 in the Designer file, that doesn't inherit from Form, cannot thus have a Dispose()` 來覆蓋:

在此處輸入圖像描述

FWIW 你不需要編輯命名空間; 您的舊命名空間中的 forms 可以在新命名空間的 forms 中使用,只需在新命名空間中的 forms 頂部添加“使用 OldNamespace”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM