Hi Christian,
ASP.NET ist Stateless.
Im Gegensatz zu Delphi existiert Dein Form nicht permanent, sondern das Form (und damit auch fFirst und iCount) wird bei jedem einzelnen Seitenaufruf neu erzeugt. Dein fFirst ist also immer true, iCount ist also immer 1.
Dieses fFirst-Konstrukt kannst Du anders handhaben: Das Property IsPostBack auf dem Property Page Deiner Form (in C# this.Page.IsPostBack) ist false, wenn die Seite initial das erste mal geladen wird und true, wenn die Seite feststellt, dass sie durch einen Postback (User Eingriff auf Client-Seite) neu aufgerufen wird.
Dein iCount musst Du darüber hinaus auch noch persistieren:
Das heisst am besten, den Wert von iCount aus dem Label zurücklesen:
Code:
if not isPostBack then
iCount = 1
else
iCount := Int32.Parse(LabelMitCountDrin.Text);
Dann kannst Du mit dem iCount weiterarbeiten.
Edit: Tags angepasst.
Nachtrag: Meiner Freundin pressierts grad. Muss wech. Ich hab zuhaus ein paar Bücher, unter anderem auch welche, die die gesamten Hintergrund-Konzepte (Stateless, Persistierung von Informationen (ViewState / ControlState), Postback / Callback (AJAX) sowie den ASP.NET Page Lifecycle (gaaaanz wichtig, den zu kennen!) ) erklären. Aber die Schlagworte hab ich Dir jetzt mal geliefert, da dürftest Du auch einige gute Artikel und Blogeinträge zu finden. Besonders ScottGu und RickStrahl sind gute Quellen für ASP.NET Hintergrundinformationen mit ihren Blogs.
Nachtrag 2: Wenn es keinen wirklich zwingenden Grund gibt, nimm lieber C# (oder Prism).
Die meisten Codesamples da draussen sind C#, wir haben hier ja den Syntax-Highlighter für C#, ich hasse es, VB zu lesen und so viele andere ASP.NETler die VB nutzen treiben sich hier erfahrungsgemäß nicht herum :-p