2009-10-06 49 views
16

我有一個問題(很明顯的問題:)類型名稱{}的MyUserControl中不存在類型{} myNamespace.myNamespace

我有一個項目 - MyProject的......該項目的,因此其餘使用默認的任何類作爲命名空間「MyProject」...沒問題。

在我的項目中,我創建了一個自定義用戶控件,其上有很多其他控件(標籤,文本框等)。因此,該類也在「MyProject」的默認名稱空間內。所有編譯沒有問題。爲了確認範圍的可見性,在這個用戶控件上,我確信DESIGNER代碼和代碼隱藏(我的代碼)在同一個「MyProject」命名空間中(它們是),並且它們分別是PUBLIC PARTIAL CLASS MyUserControl 。

現在的問題。我創建了一個簡單的表單(默認情況下也在名稱空間「MyProject」中)。從工具箱中,「MyUserControl」存在,所以我把它拖到MyNewForm上。拖放是好的。

保存全部,編譯,失敗...設計器正在添加一個額外的「MyProject」引用,因此看起來用戶控件實際上位於MyProject.MyProject.MyUserControl ..而不是MyProject.MyUserControl。

只要我手動刪除多餘的「MyProject」,保存並編譯,一切都很好。但是,如果我重新編輯表單,更改某些內容,M $將其更改回原始的「MyProject.MyUserControl」引用。

之所以這麼說,這裏是從我的項目中的片段......

namespace MyProject 
{ 
    partial class MyNewForm 
    { 
     ... 
     private void InitializeComponent() 
     { 
     // THIS is the line that has the extra "MyProject." reference 
     // when I manually remove it, all works perfectly 
     this.MyUserControl1 = new MyProject.MyUserControl(); 
     } 
    } 


    private MyUserControl MyUserControl1; 

} 

然後,在定義的MyUserControl我...

namespace MyProject 
{ 
    public partial class MyUserControl : UserControl 
    ... 
} 

,並從MyUserControl通過Designer ...

namespace MyProject 
{ 
    public partial class MyUserControl : UserControl 
    ... 

} 

感謝您的幫助...

回答

11

設計師在做什麼是好的。

- >你的項目中有一個叫做MyProject.MyProject的名稱空間。

(嘗試在「類視圖」找到它)

+2

LOADS的感謝。 – Larry 2011-09-30 13:34:09

+15

當您在某個名稱空間中使用與名稱空間相同的名稱類時,也會發生這種情況。 – greenskin 2013-06-20 10:34:30

0

由於這是一個頂級的搜索結果,當我有這個錯誤,只是想發表我的原因和解決方案。

  • 我有一個解決方案中的兩個項目,共享一個「共同」類文件,作爲鏈接添加。
  • 我添加了第二個'助手'類文件作爲鏈接,在第一個中使用了它的代碼,並得到了錯誤。

問題是我沒有在這兩個項目中添加第二個'helper'類作爲鏈接。

因此,另一個項目有一個更新的'普通'類,但沒有它現在使用的'助手'類的知識。

自我提醒:更加註重錯誤列表:)

11

PS的項目列。給任何有同樣問題但沒有找到任何解決方案的人...

假設你已經創建了一個新的WindowsFormApplication;

  1. 使用與其解決方案名稱相同的名稱創建一個新的WindowsFormApplication項目。
  2. 默認預先創建的表單名稱稱爲「Form1」。並改變其名稱相同的項目名稱。
  3. 將新的UserControl類添加到項目中。
  4. 構建/重建項目並檢查usercontrol位於Toolbox中。
  5. 將usercontrol拖放到窗體上並開始調試。
  • Error: The type name 'userControlName' does not exist in the type 'projectName.FormName'

我對網研究任何解決方案,但未能拿出任何答案...

但是,如果你改變窗體名稱與項目名稱的任何其他不同的,它將得到解決。

如果您堅持要求表單名稱和項目名稱必須相同,具體取決於您的項目需求,可以創建自定義DLL並使用其中的usercontrol。

然後作爲控制使用,添加DLL文件中的「工具箱」使用「選擇項目...」

最後,將是準備使用。

PS2。同樣的問題掙扎幾個小時,這是我找到的解決方案。

+1

我遇到了類似的問題。對我而言,它是一個具有相同名稱空間的類。驅使我瘋狂,但感謝這個答案,我發現它。 – 2016-06-29 16:56:14

1

用戶控件和表單的名稱相同。使用不同的名字將解決問題。

2

命名空間名稱和類名稱需要不同。通過添加WCF生成的代碼會自動引用名稱空間,但是如果類名稱與名稱空間名稱相同,則生成的代碼將查看該類,並且不會編譯任何內容。

0

正好遇到這個地方我有一個母版,在文件名爲.master

0

當您使用不同的頁面也會出現這種情況,但具有相同的名稱有明確的

<%@ Import Namespace="MyNamespace" %> 

。在我的情況下,我創建了「Grants.xsd」數據集和「Grants.aspx」頁面。不知怎的,他們遇到了衝突導致了這個錯誤。

您可以通過將鼠標懸停在罪魁禍首關鍵字(類名)上並在Visual Studio 2013中輕鬆解決此問題,它會準確地告訴您衝突在哪裏。

相關問題