[GELÖST] subtrahieren in einer Textbox oder so...

  • VB.NET

Es gibt 43 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Das ist das Schlimmste, was man tun kann, da Du somit das OOP-Prinzip verletzt. Ohne Instanziierung geht nichts, das ist Unsinn. Klassen sind keine Objekte.
    Es ist Schwachsinn, jemandem etwas falsch beizubringen, nur damit er es einfacher hat, so geht das nicht. Man muss sich im Leben auch mal etwas stellen und so viel Arbeit ist das jetzt echt nicht, einfach eine Instanz zu erstellen.

    Höre doch bitte deshalb auf, zu widersprechen und seh' ein, dass man es richtig machen muss. Davon abgesehen, bereitet es nur mehr Probleme, als es löst.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Ich will ja freundlich bleiben, aber warum macht Ihr es mir so schwer?
    Es ist falsch! Und außerdem geht das nicht immer, da es diverse Probleme damit geben kann. Wenn Du eine Zeile mehr opferst und es richtig machst, dann passiert da gar nichts.

    Außerdem ist über diesen Weg keine Übergabe von Properties usw. möglich.
    Ich kann Dich/Euch zu nichts zwingen und bin sicher auch kein Lehrer, aber wer selbst solche simplen Dinge nicht einsieht, sollte es imo lieber sein lassen, da es beim Programmieren nicht nur darum geht, etwas zum Laufen zu bringen.

    ~ Trade out. :/

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Zeige uns kompilierten laufenden IL-Code, der auf Member einer Klasse zugreifen kann, die nicht statisch sind. Geht nicht. VB macht aus der "Form" (blödeste Bezeichnung die es gibt, es ist eine Klasse, die von Form erbt und Klasseninstanzen die von Control erben beherbergt) eine Default-Instanz. Du greifst also auf eine im Hintergrund erstellte Instanz zu. Was syntaktisch absolut falsch ist und in jeder Programmiersprache stumpf in einem Compilerfehler enden würde. Dank Microsoft werden anfangenden Programmierern so etwas als gültig dargestellt und die verstehen die Welt nicht mehr "Läuft doch, also muss es richtig sein.". Wenn man so mutig ist und mit VB anfängt, dann unbedingt mit gescheiter Lektüre, am Besten sogar mitter Konsole. Wer OOP nicht versteht, kann auch nicht mit einer OO-Sprache arbeiten.
    Hey zusammen,

    Versuch mal das hier

    VB.NET-Quellcode

    1. If IsNumeric(TextBox1.Text) = True Then 'schaut nach ob nur ziffern im textfeld stehen
    2. 'wenn nur ziffern drin sind mach das....
    3. Dim intvariabel As Integer = CInt(TextBox1.Text) 'convertiere den string in ein int und packs in eine variabel
    4. If intvariabel > 0 Then 'wenn variabel mehr als 0 dann
    5. MsgBox(" größer als 0")
    6. Else 'wenn variabel weniger als 0 dann
    7. MsgBox("ist 0 oder kleiner")
    8. End If
    9. Else
    10. 'wenn was anderes als ziffern in den textfeld steht
    11. MsgBox("mit buchstaben kann man schlecht rechnen hm")
    12. End If

    geht sicher auch einfacher , hab gerade aber wenig zeit.

    solong
    Ray

    *oh gerade die 2. seite des postes gemerkt xD
    Dennoch schreibst du den Code? Naja egal. Um dem TE gleich zu erklären, warum das Ranz ist:
    1. IsNumeric ist unzuverlässig, deshalb nicht verwenden.
    2. CInt ist veraltet. Lieber Integer.Parse verwenden.
    3. MsgBox stammt von VB6 und ist demnach veraltet und wurde von MessageBox.Show abgelöst.

    Auch wenn man es gut meint, bitte korrekten Code posten.

    LG
    Für sowas gibt es normal NumericUpDowns, ansonsten würde ich sogar ​Integer.TryParse verwenden, braucht man halt eine Referenz als Parameter, aber dafür stürzt das Programm nicht ab, wenn ein String in der TextBox steht.
    Ansonsten mit einfachem Integer.Parse müsste man vorher den Input abfangen und beschränken.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Nein, Option Infer On regelt das automatisch mit der Typinferrenz.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Typinferrenz ist eigentlich immer in Ordnung. Würde es zwar nie bei Wertetypen nutzen, aber ok, das ist Geschmackssache.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: