2013-04-08 48 views
2

在我的WinForms項目(VS2010,.NET 4.0)通用用戶控件我有一個名爲MyView用戶控制,這是從System.Windows.Forms.UserControl的。然後我修改這個控制是通用用戶控制:與ComponentResourceManager語法錯誤

Partial Class MyView(Of TEntity As {New, Class}) 
     Inherits System.Windows.Forms.UserControl 

    ' source code here 

End Class 

不幸的是,自動生成從VS的Winforms設計InitializeComponent()碼與vb.net語法錯誤供給併產生編譯錯誤:

Dim resources As System.ComponentModel.ComponentResourceManager = 
New System.ComponentModel.ComponentResourceManager(GetType(MyView)) 

相反上面的代碼行應該是:

Dim resources As System.ComponentModel.ComponentResourceManager = 
New System.ComponentModel.ComponentResourceManager(GetType(MyView(Of TEntity))) 

我該如何解決VS2010 WinForms Designer的這種行爲?

+0

我的用戶控件的基類是'System.Windows.Forms.UserControl'(非泛型)。在'InitializeComponent()'代碼重新生成後,我遇到了語法錯誤和編譯失敗的問題。如果我手動修復這個語法,我可以在VS Designer中打開這個控件。我的問題是與此問題相關:http://stackoverflow.com/a/1627518/823040 – sgnsajgon 2013-04-08 21:26:02

+0

有解決此問題的解決方案:[鏈接](http://stackoverflow.com/a/14849745/823040 )。這個修復與已知的方法非常類似,用於修復使用VS Winforms Designer與從通用類型派生的控件和窗體的VS限制。但是它涉及創建額外的配件類。我不知道有沒有更漂亮的解決方案。 – sgnsajgon 2013-04-10 10:21:13

回答

0

一些解釋,並提出瞭解決辦法相關主題:Fix embedded resources for a generic UserControl

的機會,這是錯誤最多VS2010。

Bypass方式與已知方法非常類似,用於修復使用VS Winforms Designer與從通用類型派生的控件和窗體的VS限制。但是它涉及創建額外的配件類。