Ich versuche, eine ähnliche Wirkung in einer WinForms-Anwendung wie ein Master-Formular mit ASP.NET zu erreichen. Meine anfänglichen Überlegungen dazu waren, eine Basisform zu erstellen und sie als abstrakt zu erklären, aber der Compiler scheint mir das nicht zu erlauben.Abstrakte Formulare mit WinForms
public abstract partial class Master : Form
{
public Master()
{
InitializeComponent();
}
}
So habe ich zwei Fragen:
- Warum wird der Compiler mir dies nicht tun lassen? Benutze ich die falsche Syntax oder ist das eine echte Einschränkung?
- Kann jemand einen Workaround oder einen besseren Weg vorschlagen, dies zu tun?
EDIT:
InitializeComponent Code:
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.mainMenu1 = new System.Windows.Forms.MainMenu();
this.Menu = this.mainMenu1;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Text = "Master";
this.AutoScroll = true;
}
EDIT:
Der Fehler wird wie folgt dar:
The designer must create an instance of type 'Namespace.Master' but it cannot because the type is declared as abstract.
Was ist der eigentliche Compilerfehler? –
Wenn das der genaue Ausschnitt ist, den Sie kompilieren möchten, müssen Sie eine Definition für InitializeComponent() angeben. – asawyer
Vielleicht nachschärfen oder etwas beschweren über öffentlichen Konstruktor in der abstrakten Klasse? –