Bei voller Progressbar Messagebox öffnen haut nicht hin

TheJoGie

treuer Stammgast
Hallo,
ich bin (immernoch :p) C# Anfänger und verstehe folgendes nicht:

Code:
        private void progressBar1_Click(object sender, EventArgs e)
        {
            //Messagebox soll angezeigt werden, wenn Ladeleiste voll ist
    if progressBar1.Value = progressBar1.Maximum then MessageBox.Show("Ladeleiste voll");
        }

das von mir genannte "then" wird irgendwie nicht erkannt...:(

Ich habe keine Ahnung woran das liegt... Als Anhang nochmal ein Screenshot

Hier ein längerer Codeausschnitt mit etwas mehr Details ;)

verborgener Text:

Code:
private void timer1_Tick(object sender, EventArgs e)
        {
            this.progressBar1.Increment(1);
        }

        private void progressBar1_Click(object sender, EventArgs e)
        {
            //Messagebox soll angezeigt werden, wenn Ladeleiste voll ist
    if progressBar1.Value = progressBar1.Maximum then MessageBox.Show("Ladeleiste voll");
        }

        private void fontDialog1_Apply(object sender, EventArgs e)
        {
            
        }

        private void label12_Click(object sender, EventArgs e)
        {
           
        }

        public int progBarValue { get; set; }
    }
}


Danke im vorraus :D
 

Anhänge

  • c#-fehler-neu.png
    c#-fehler-neu.png
    139,5 KB · Aufrufe: 422
Naja, woran könnte es wohl liegen, dass Visual Studio das Wort "then" nicht kennt?

Weil es das in der Syntax auch nicht gibt, ganz einfach :D



Die richtige Syntax sieht so aus:

PHP:
if (BEDINGUNG)
{
    // TODO
}
oder so:
PHP:
if (BEDINGUNG) // TODO

Außerdem muss das =-Zeichen doppelt geschrieben werden, wenn es zwei Objekte vergleichen soll, denn einfach geschrieben ist es ein Zuweisungsoperator.

PHP:
if (progressBar1.Value == progressBar1.Maximum)
{
    MessageBox.Show("Ladeleiste voll");
}
oder
PHP:
if (progressBar1.Value == progressBar1.Maximum) MessageBox.Show("Ladeleiste voll");

Das, was du geschrieben hast, das ist Visual Basic. Die letzte Version von VB.NET ist bis auf die Syntax dem C# sehr ähnlich, daher gibts auch Tools, die aus der einen Sprache in die andere Sprache übersetzen können. Nicht immer fehlerfrei, aber es geht. Ich persönlich halte von der ganzen Visual Basic-Familie absolut gar nichts.
Aber das ist meine Meinung, hier findest du jedenfalls deine if-Variante wieder und, wenn du das für VB compilierst, gibt das auch keinen Fehler. Dann ist aber dein Methoden-Kopf falsch und die ganze Methoden-Syntax, weil die ist typisch C#, Java und so weiter.



Ich empfehle dir da doch mal ein gutes Buch, wie dieses.
Sowas sind wirklich die mindesten Grundlagen, die du auch bei einigen anderen Sprachen wieder finden wirst.
Außerdem eignet sich das Buch auch gut als Nachschlagewerk.
 
Danke für deine Antwort! Werde ich gleich erstmal ausprobieren ;)

Ein Buch zu kaufen hatte ich auch schon vor, ich war nur auf der Suche nach dem richtigen :)

In nächster Zeit werde ich mir dann ein C# Buch anschaffen.
 
Warum wollen alle ein Buch kaufen, wenn ich doch schon einen Link zu einem kostenlosen Buch mit gebe? o_O


Schau dir doch mal die Links an, nur so zur Abwechslung :D
 
Das ist zwar an den Browser gebunden, lässt sich aber auch downloaden.
Und wer Zeit und genug Papier hat, kann sich die Seiten ja auch in PDF ausgeben lassen und dann drücken.

So hab ich das gemacht. Die Kapitel, die ich irgendwo hin mit nehmen wollte, hab ich als PDF gespeichert und ausgedruckt. Wenn du gut mit kleiner Schrift aus kommst, dann zwei Seiten pro Seite und auch doppelseitig bedruckt, dann ist das Papier noch bezahlbar.
 
Deine Code-Schnipsel würde in Pascal vollkommen funktionieren ;)
Die Schlüsselwörter in Pascal sind "menschlicher". Statt "{" zB "begin" und statt "}" gibt es "end".

Ich kenne C# nicht, allerdings C++ und Java (was an die C-Familie anlehnt) - die Sprachen sind einfacher zu benutzen, allerdings ist Pascal-Code um Längen sicherer (so gut wie keine NullPointer-Exceptions, BufferOverflows etc)!

Das hier nur so am Rande, vlt hast du im falschen Tutorial nachgeschlagen :)

Gruß,
bastla
 
Wie du ja schon sagst: Du kennst kein C# :D

Da gibts die NullPointer-Exceptions nämlich auch nicht, voraus gesetzt, du bist nicht so doof und nutzt die Pointer.
Und BufferOverflows gibt es in C# auch nur, wenn man unsicheren Code verwendet und der muss extra in einem unsafe-Block geschrieben und beim Compiler erlaubt werden, damit er möglich wird.
C++ ist eine sehr mächtige Sprache, aber auch sehr schwer, wenn man Fehler vermeiden will. C# ist da deutlich einfacher, bisher konnte ich nur logische Fehler provozieren, der Rest wird gar nicht erst zu gelassen - außer ich leg es darauf an und nutze die Dinge, die bei C# wegen der Vollständigkeit aus C++ übernommen wurden, aber das muss nicht sein.

Dass Java bescheuert ist, geb ich allerdings offen zu, doch das ist ja auch kein Geheimnis. :D
Ich schlag mich damit gerade wegen ein paar Bukkit-Plugins rum, komm ich leider nicht drum herum, wenn ich sowas bauen will.


Ich wüsste allerdings auch nicht, was an "begin" und "end" menschlicher sein soll, gerade das mag ich nicht. Das ist nur insofern menschlicher, weil es Worte sind und keine Zeichen. Einfacher ist es dadurch aber nicht.
Die geschweiften Klammern stechen aus dem ganzen Text hervor, weil sie eben kein Wort sind und der Rest der Zeile meist leer bleibt.
Und genau das sollen sie doch auch tun, sie sollen den Code von dem restlichen Code abgrenzen, um deutlich zu machen, dass es ein eigener Code-Block ist.
Mich nervt so ziemlich jede Syntax, die da nicht anders gestaltet ist, weil so der ganze Code unübersichtlicher wird.

Gut, mag sein, dass das Geschmackssache ist, aber dann solltest du das auch dazu schreiben. :p
 
Dann ist C# halt das Pascal in der C-Familie :D
Lass mich nur eben noch erwähnen, dass C# nur unter Windows und nur mit installierter Laufzeitumgebung läuft. Halbe Sachen wie Mono sind auch nur halbe Sachen :ätsch

Also ehrlich gesagt macht das Prinzip von Java Sinn: Du schreibst den Code einmal und kannst das Programm auf so gut wie jedem Computer, Handy, Blu-ray Player, Website etc verwenden. Die kompilierten Dateien sind klein, benötigte Bibliotheken sind ja bereits auf auf dem Endgerät installiert.
Gut, bei C# mit .NET genau das gleiche, nur, und hier liegt der Punkt, der Quatsch ist nur für Windows zu haben, mit Mono teilweise auch noch für Linux und Mac, allerdings nicht für Handys, Websites & Co.
Dann lieber Pascal mit der Lazarus Bibliothek, für Windows, Linux, Mac, Android, iOS, PalmOS, Nintendo etc zu haben und, hier liegt der große Vorteil, es wird keine Laufzeitumgebung benötigt.

Allerdings, gegen alle Vorurteile, die ich habe :D, hört sich C# doch wirklich sicher an; wenn Java das auch von sich behaupten könnte, dann hätte sich C# niemals durchgesetzt.

Und was C++ betrifft: Du baust auch kein Haus, wenn du bangen musst, dass es beim nächsten Sturm zusammenbricht. Das gilt auch für C++, die Sprache lässt halt Freiraum und wer dann schlampig programmiert, hat selbst Schuld gehabt.

Gruß,
bastla
 
Oben