Meinews.de  


Zurück   Meinews.de > Forum > Newsgroups microsoft.public.de.* 1 Forum > Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp
Registrieren FAQ Benutzerliste Kalender Suchen Heutige Beiträge Alle Foren als gelesen markieren

Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp Forum microsoft.public.de.german.entwickler.dotnet.csharp

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 11-03-2009, 09:37 AM
Carsten Ilwig
 
Beiträge: n/a
Standard Designerproblem bei der Vererbung von generischen Formularen

Hi Leute,

ich habe das Problem, dass ich ein generisches Formular, welches wiederum
von einem generischen Formular erbt nicht mehr im Designer öffnen kann.
Es kommt dann immer folgender Fehler:
.....
Der Designer konnte für diese Datei nicht angezeigt werden, da keine der
enthaltenen Klassen definiert werden kann. Der Designer hat folgende Klassen
in der Datei überprüft: Form2 -- Die
WindowsFormsApplication3.Form1-Basisklasse konnte nicht geladen werden.
Stellen Sie sicher, dass auf die Assembly verwiesen wurde und alle Projekte
erstellt wurden.
.....

Hier der Beispielcode:

---Datei Programm.cs------------
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form2<TestObject>());
}
}
}
----------------------------------------
-----Datei Class1.cs-------------------
namespace WindowsFormsApplication3
{
public class TestObject { }
}
----------------------------------------
-----Datei Form1.cs-------------------
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1<TItem> : Form
{
public Form1() { InitializeComponent(); }
private System.ComponentModel.IContainer components = null;

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.SuspendLayout();
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(555, 155);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
}
}
----------------------------------------
-----Datei Form2.cs-------------------
namespace WindowsFormsApplication3
{
public partial class Form2<TItem> : Form1<TItem>
{
public Form2() {InitializeComponent();}
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
components.Dispose();
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(555, 155);
this.Name = "Form2";
this.Text = "Form2";
this.ResumeLayout(false);
this.PerformLayout();
}
}
}
----------------------------------------

Mache ich da einen Fehler, oder geht das so gar nicht wie ich mir das
vorstelle?
Das Programm an sich läuft übrigens einwandfrei.
Auch das Formular "Form2" wird fehlerfrei angezeigt.
Ich kann es nur nicht mehr im Designer öffnen.

Vielen Dank für Eure Hilfe
Carsten

Mit Zitat antworten
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Meinews.de
Standard Sponsored Links

  #2  
Alt 11-03-2009, 11:15 AM
Joachim Fuchs
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Hallo Carsten,

der Designer muss eine Instanz der Basisklasse anlegen. Diese darf daher
nicht generisch sein.

Gruß
Joachim

--

Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html -
http://vbnet.codebooks.de



Mit Zitat antworten
  #3  
Alt 11-03-2009, 11:20 AM
Carsten Ilwig
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Hallo Joachim,

vielen Dank für Deine schnelle Antwort.

> der Designer muss eine Instanz der Basisklasse anlegen. Diese darf daher
> nicht generisch sein.

Heist das nun, dass es so wie ich es wollte, Vererbung von einem generischen
Formular, überhaupt nicht geht,
oder muss ich das nur anders programmieren?


Gruß
Carsten

Mit Zitat antworten
  #4  
Alt 11-03-2009, 12:03 PM
Joachim Fuchs
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Hallo Carsten,

> Heist das nun, dass es so wie ich es wollte, Vererbung von einem
> generischen Formular, überhaupt nicht geht,
> oder muss ich das nur anders programmieren?


doch, natürlich geht das. Aber dann kann man halt den Designer nicht mehr
benutzen.

Gruß
Joachim
--

Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html -
http://vbnet.codebooks.de



Mit Zitat antworten
  #5  
Alt 11-03-2009, 01:20 PM
Carsten Ilwig
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Hallo Joachim,

> doch, natürlich geht das. Aber dann kann man halt den Designer nicht mehr
> benutzen.

Das ist aber gar nicht schön. :-(

Geht es vielleicht mit VS2010, oder muss da Microsoft generell noch etwas
tun, damit so etwas funktioniert?
Ist diese Konstellation den eigentlich so ungewöhnlich?

Gruß
Carsten

Mit Zitat antworten
  #6  
Alt 11-03-2009, 01:22 PM
Stefan Hoffmann
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

hallo Carsten,

Carsten Ilwig wrote:
> Mache ich da einen Fehler, oder geht das so gar nicht wie ich mir das
> vorstelle?

Siehe

http://stackoverflow.com/questions/1...ric-forms-in-c

Wenn ich darüber so nachdenke, klingt das aber nach einem Fall von
Refaktorisierung hin zu MVC/P.


mfG
--> stefan <--
Mit Zitat antworten
  #7  
Alt 11-03-2009, 01:55 PM
Joachim Fuchs
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Hallo Carsten,
> Geht es vielleicht mit VS2010


nein, wie sollte es auch. Damit der Designer etwas anzeigen kann, muss er,
wie gesagt, die Basisklasse instanzieren und den seblst generierten Code aus
InitializeComponent abarbeiten. Wenn sich die Basisklasse (aus welchen
Gründen auch immer) nicht instanzieren lässt (generisch, abstract etc.),
dann kann der Designer auch nichts anzeigen. Das wird auch in VS 2010 nicht
anders sein.

> Ist diese Konstellation den eigentlich so ungewöhnlich?

ja, sofern man auf den Designer angewiesen ist. Wer den Designer nicht
nutzt, sondern die Oberfläche dynamisch aufbaut, kann natürlich bzgl.
Vererbung aus dem Vollen schöpfen.

Vererbung ist nicht immer die beste Lösung, schon gar nicht bei
Fensterklassen.

Gruß
Joachim
--

Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html -
http://vbnet.codebooks.de



Mit Zitat antworten
  #8  
Alt 11-03-2009, 04:18 PM
Immo Landwerth
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Joachim Fuchs wrote:

> Vererbung ist nicht immer die beste Lösung, schon gar nicht bei
> Fensterklassen.


Diese Aussage findet absolut meine Zustimmung. In der Vergangenheit
sind mir nur sehr absurde Konstellationen von "visual inheritance" über
den Weg gelaufen, die man mit User Controls und einfacher Komposition
in aller Regel deutlich eleganter und sinnvoller hätte abbilden können.

--
Immo Landwerth
Mit Zitat antworten
  #9  
Alt 11-03-2009, 09:32 PM
Carsten Ilwig
 
Beiträge: n/a
Standard Re: Designerproblem bei der Vererbung von generischen Formularen

Vielen Dank an alle Beteiligten. :-)

Mit dem UserControl hatte ich bereits geliebäugelt, die Variante mit dem
vererbten Form ging für mich halt schneller.
Aber na gut, dann werde ich wohl nun doch auf UserControls umsteigen.

Mit freundlichen Grüßen
Carsten


Mit Zitat antworten
 
Antwort


Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen
Es ist dir nicht erlaubt, auf Beiträge zu antworten
Es ist dir nicht erlaubt, Anhänge anzufügen
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten

vB Code ist An
Smileys sind An
[IMG] Code ist An
HTML-Code ist Aus

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Typumwandlung bei generischen Klassen Gerrit Kuhlendahl Newsgroup microsoft.public.de.german.entwickler.dotnet.vb 8 11-02-2009 05:12 PM
Casting von generischen Listen Thomas Kehl Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp 5 11-02-2008 01:58 PM
Re: Sortieren von generischen Listen Andreas Hartl Newsgroup de.comp.lang.java 0 10-04-2007 07:39 AM
Re: Sortieren von generischen Listen Wanja Gayk Newsgroup de.comp.lang.java 0 10-01-2007 08:23 PM
Re: Sortieren von generischen Listen Stefan Ram Newsgroup de.comp.lang.java 2 10-01-2007 08:21 AM


Alle Zeitangaben in WEZ. Es ist jetzt 01:43 PM Uhr.





Powered by: vBulletin Version 3.6.7 (Deutsch)
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Forum SEO by Zoints