Laden...

[gelöst] Spezieller Opendialog

Erstellt von absolut vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.581 Views
absolut Themenstarter:in
76 Beiträge seit 2006
vor 17 Jahren
[gelöst] Spezieller Opendialog

Guten Abend,

ich benötige einen speziellen filedialog zum öffnen von Dateien. Je nach Datei-Typ muss ich einen bestimmten Teil des Inhalts anzeigen und auflisten, zum Beispiel:

Beim DataTyp1:
DateiName, Vorname, Name, ...

Beim DataTyp2:
DateiName, Bezeichnung, Datum, ...

Beim DataTyp3:
DateiName, Datum, Serien-Nummer, ...

Ich habe nun drei neue Klassen vom Typ DataGridView abgeleitet, welche genau diese Informationen in einer Tabelle anzeigen:


class DataTyp1 : DataGridView
{
}

class DataTyp2 : DataGridView
{
}

class DataTyp3 : DataGridView
{
}

Nun möchte ich aber nicht für jede Klasse ein eigenes Form für die Darstellung benutzen. Also dachte ich mir, ich erstelle ein neues Formular und übergebe den den Klassentypen, damit ich dann ein neues Objekt vom richtigen DataTyp erstellen kann:


public partial class myOpenDialog<T>: Form
{
  private T dataview = new T();
}

Das neue Form erstelle ich wie folgt:


myOpenDialog<DataTyp1> myopendialog= new myOpenDialog<DataTyp1>();

Nur leider funzt das nicht: 🙁 X(
Cannot create an instance of the variable type 'T' because it does not have the new() constraint

Wie löse ich das Problem?

49.485 Beiträge seit 2005
vor 17 Jahren
121 Beiträge seit 2006
vor 17 Jahren

Hallo absolut,

Nur leider funzt das nicht: 🙁 X(
Cannot create an instance of the variable type 'T' because it does not have the new() constraint

Bitte lies mal da. "Typparameter mit Constraints einschränken" und "Der Konstruktor-Constraint »new()«"

Grüße
Hape

absolut Themenstarter:in
76 Beiträge seit 2006
vor 17 Jahren

herbivore: Danke für den Link, brachte mir nix. 🙁

hape: Ebenfalls danke für den Link, dort fand ich die Lösung für das Problem. 😁
Das einschränken auf die Basisklasse und das new() brachte den erhofften Erfolg. 👍

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo absolut,

herbivore: Danke für den Link, brachte mir nix.

das ist bitter! Der Link ist ja hauptsächlich eine Aufforderung zur Eigeninitiative und mit dieser hättest du m.E. alleine zu den Links finden müssen, die hape genannt hat.

herbivore

absolut Themenstarter:in
76 Beiträge seit 2006
vor 17 Jahren

herbivore: Das finde ich gut, dass die Eigeninitiative gefördert wird. Irgendwie habe ich hier vor lauter Bäumen den Wald nicht mehr gesehen. 😁

Die Antwort von hape hat mir weiter geholfen, da ich nun wusste nach was ich suchen soll und wo das Problem liegt. Ich hatte trotzdem noch eine ganze weile bis das Teil richtig lief, da ich noch einen anderen kleinen Schönheitsfehler übersehen hatte. 🙂

Ansonsten muss ich schon sagen: Super Forum. 👍
Nur schon mit der Suchfunktion konnte ich viele Probleme lösen, das Problem ist halt nur, dass man als Anfänger meistens nicht genau weiss, nach was man suchen soll...