2012-11-26 20 views
0

我正在使用WinForm項目。 在項目中,我有兩個窗體frmGeneric和frmMain。 他們理了理這樣的:'WindowsFormsApplication1.frmMain'的部分聲明不能指定不同的基類

namespace WindowsFormsApplication1 
{ 
    public partial class frmGeneric 
    { 
    } 
} 


namespace WindowsFormsApplication1 
{ 
    partial class frmMain:frmGeneric 
    { 
    } 
} 

即frmMain從frmGeneric派生。

該行:

partial class frmMain:frmGeneric 

我得到這個錯誤:

Partial declarations of 'WindowsFormsApplication1.frmMain' must not specify different base classes C:...\WindowsFormsApplication1\Form1.Designer.cs

任何想法,爲什麼我得到這個錯誤,以及如何解決它?

+1

「C:... \ WindowsFormsApplication1 \ Form1.Designer.cs」中的基類是什麼?它可能只是'Form',你必須指定它的基類爲'frmGeneric' –

+1

@HonzaBrestan你應該發佈這個答案。 – ryadavilli

+0

Honza Brestan,請寫出更詳細的如何實現它? – Michael

回答

2

看看你的C:...\WindowsFormsApplication1\Form1.Designer.cs課程。它包含frmMain類定義的另一部分,它似乎也有一個指定的基類,它是另一個比您的frmGeneric

使用部分類時,您只需在一個部分中指定基類,或者必須在其他部分中使用相同的基類。因爲它仍然被編譯到一個類中,所以不能從多個類繼承。

出於同樣的原因,你不能有:

class Form2 : Form1, Form { ... } 

你也不能有:

partial class Form2 : Form1 { ... } // File 1 
partial class Form2 : Form { ... } // File 2 

確保這不是這種情況,即(與你的類名)之一:

// File 1 (Form1.cs, probably) 
partial class frmMain : frmGeneric { ... } 

// File 2 (Form1.designer.cs) 
partial class frmMain : frmGeneric { ... } 

或:

// File 1 (Form1.cs, probably) 
partial class frmMain : frmGeneric { ... } 

// File 2 (Form1.designer.cs) 
partial class frmMain { ... } 
相關問題