Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Page Klasse neu erstellen
naumann
myCSharp.de - Member



Dabei seit:
Beiträge: 61

Themenstarter:

Page Klasse neu erstellen

beantworten | zitieren | melden

Hallo,

ich steh grad aufm Schlauch. Ich möchte mir eine neue Page Klasse NewWebForm erstellen. Diese Leite ich von der Page Klasse ab. sieht ungefähr so aus:


public class NewWebForm: System.Web.UI.Page
{
public StarfishWebForm()
{

}
}

Wenn ich der Klasse keinen neuen Konstruktor zuweise, dann geht das ganze. Wenn sie jedoch einen hat, dann kann ich kann ich meiner Seite keinen weiteren WebForms-Objekte hinzufügen.

Meine Frage also. Wie kann ich in meiner neuen Page Klasse den Konstruktor von Page aufrufen. Ich hab an sowas wie base = new Page(); gedacht. Funktioniert aber leider nicht.
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hallo Naumann

Hmm, wenn ich mich nicht irre geht das so:


base.Methode(Argument);

Aber ob dir das weiterhilft ?(


Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
sheitman
myCSharp.de - Member



Dabei seit:
Beiträge: 1.047

beantworten | zitieren | melden

eher so

public class NewWebForm: System.Web.UI.Page
{
public StarfishWebForm():base()
{

}
}

bzw. mit argumenten in ()

das was Peter beschreibt is der explizite aufruf von methoden der oberklasse
private Nachricht | Beiträge des Benutzers
naumann
myCSharp.de - Member



Dabei seit:
Beiträge: 61

Themenstarter:

beantworten | zitieren | melden

was meinst du damit?
Zitat
Original von Peter Bucher


base.Methode(Argument);

Wenn ich das Projekt kompiliere dann zeigt er mir folgende Warnung:

Eine Ausnahme ist aufgetreten, während eine Instanz von starfish.StarfishWebForm erstellt wurde. Die Ausnahme war "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.".

Er meint, dass alle Projekte erfolgreich erstellt wurden. Es funktioniert auch im Browser. Nur im Designer werden mir keine Objekte angezeigt.
private Nachricht | Beiträge des Benutzers
naumann
myCSharp.de - Member



Dabei seit:
Beiträge: 61

Themenstarter:

beantworten | zitieren | melden

Ich merke grade dass ich mich verschrieben habe.

Ich meine natürlich:


public class NewWebForm: System.Web.UI.Page
{
public NewWebForm
{
//Konstruktor
}

}
Zitat
public class NewWebForm: System.Web.UI.Page
{
public StarfishWebForm():base()
{

}
}
Meinst du, dass der Konstruktor von der Base erben soll? Geht daswhat:
private Nachricht | Beiträge des Benutzers
sheitman
myCSharp.de - Member



Dabei seit:
Beiträge: 1.047

beantworten | zitieren | melden

nein so gibt man an welcher basisikonstruktor aufgerufen werden soll

:base() kann man auch weg lassen denn wenn man nichts schreibt wird der automatisch aufgerufen

nachtrag:
gibts nen grund warum du das in den konstruktor einfügen willst?
kannst das auch ins page_load rein nehmen
private Nachricht | Beiträge des Benutzers
naumann
myCSharp.de - Member



Dabei seit:
Beiträge: 61

Themenstarter:

beantworten | zitieren | melden

Eine andere Frage. Wie konnte ich prüfen, ob das Programm grade im Designer ausgeführt wird? Das Problem tritt ja nur im Designmodus auf.

Ich hatte das ganze schonmal in irgendeinem Steuerelement gemacht. Leider weiß ich weder in welchem, noch wie ichs gemacht habe .

//EDIT:

Habe das ganze nochmal so probiert:


public class NewWebForm: System.Web.UI.Page
{
public NewWebForm
{
if (!this.site.DesignMode)
{
//Konstruktor
}

}

}

Leider meckert er rum, dass er DesignMode nicht besitzt. Nur wie stelle ich sonst fest ob er im Designmode ist oder nicht?
private Nachricht | Beiträge des Benutzers