2016-07-09 12 views
0

Ich bin ein VB.NET Entwickler, der versucht C# in meiner Freizeit zu lernen. Bitte beachten Sie den folgenden Code:Umgang mit Seitenlebenszyklusereignissen

public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
      this.Load += Form1_Load;//event handler code 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      string test = "got here"; 
     } 

    } 

Dies ist eine Windows Form App. Wenn ich den Ereignishandler-Code dem Konstruktor hinzufüge, verarbeitet Form1_Load das load-Ereignis.

Nun sehen Sie die Web Forms app unter:

public partial class _Default : Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      string s = "got here"; 
     } 
    } 

Page_Load ohne Event-Handler-Code ausgelöst wird?

Meine Frage ist: Sind Page Lebenszyklus-Ereignisse automatisch mit Funktionsnamen z. Page_Load behandelt automatisch das Laden der Seite in C# ASP.NET? Warum gilt dies nicht für Windows Forms? Wo fügen Sie den Event Handler Code in Windows Forms ein? der Designer?

+0

Meine Meinung, lernen Sie asp.net für das Web wie Sie nichts über Desktop-Programmierung wissen - und nicht versuchen, diese beiden zu vergleichen ... die Idee ist völlig anders. – Aristos

+1

"... in meiner Freizeit" - Tun Sie sich einen Gefallen und überspringen Sie WebForms. Gehen Sie zu http://asp.net und den MVC Tutorials dort. –

+1

Wenn du eine neue Technologie lernen willst, lerne nicht die, die auf dem Weg zur Tür ist. @HenkHolterman hat die richtige Idee - lernen Sie ASP.NET MVC und halten Sie Schritt mit modernen Entwicklungspraktiken. – mason

Antwort

1

In Asp.Net können Sie AutoEventWireup-Wert festlegen. Bitte lesen Sie in diesem Artikel https://support.microsoft.com/en-us/kb/324151

Allerdings, wenn ich der einfachste Weg für mich ein Ereignis behandeln müssen, ist auf die aspx Quellensicht gehen, finden die die runatserver Kontrolle und geben Sie dort meine Handler. Zum Beispiel:

<asp:TextBox ID="txtCustomer" runat="server" /> 

Während der Eingabe „auf ...“ Die Liste der Ereignisse angezeigt (Ereignisse durch ray Symbol gekennzeichnet), wählen Sie OnLoad und erstellen.

Jetzt gehen Sie zu Ihrem CS-Code hinter Datei und Sie werden sehen, Standard-Handler wurde dort erstellt.

protected void txtCustomer_Load(object sender, EventArgs e) 
{ 

} 

Eine andere Option wird zur Designansicht gehen, klicken Sie mit der rechten Maustaste auf das Steuerelement und gehen Sie zu den Eigenschaften. Klicken Sie auf das Strahlensymbol und fügen Sie Ihren Handler hinzu.

0

WinForm nicht Auto-Ereignis als Asp.Net feuern, da Winform nicht Seite Leben Zyklus hat. Um ein Ereignis in Winform zu behandeln, wählen Sie eine Komponente im Entwurfsmodus aus. Schau dir das rechte Panel an, du wirst den Event-Tab sehen. Es gibt viele Ereignisse hier. Doppelklicken Sie, um damit umzugehen.