Select Case

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von joerg.schulte.

    Hallo,
    Ich programmiere erst seit kurzem in VB2008 und habe ein Programmierbuch: openbook.galileocomputing.de/e…09c12a7839b23b6407048bb68 Ich bin bei Select Case und habe mir gedacht, dass ich die Variable über eine Textbox oder NumericUpDown direkt Zuweise, Scheint nicht zu Funktionieren. Es kommt folgender Fehler: Das Argument Expression kann nicht in den Typ NumericUpDown umgewandelt werden.
    Als Anhang habe ich das ganze Programm als *.zip Datei angehängt.
    Danke
    Jörg
    Dateien
    • P0219.zip

      (64,65 kB, 70 mal heruntergeladen, zuletzt: )
    Du würdest der Variable x ein komplettes Control übergeben (zahlEingabe)
    Du benötigst aber nur den Wert des Controls und das steht in der EIgenschaft (Property) .Value

    Dein Code bereinigt:

    VB.NET-Quellcode

    1. Public Class P0219
    2. Private Sub cmdAnzeige_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAnzeige.Click
    3. Dim x As Integer = Val(zahlEingabe.Value) 'Hier war der Fehler
    4. Select Case x
    5. Case 1, 3, 5, 7, 9
    6. lblAnzeige.Text = "Ungerade, Einstellig"
    7. Case 2, 4, 6, 8
    8. lblAnzeige.Text = "Gerade, Einstellig"
    9. Case Is < 1, Is > 20
    10. lblAnzeige.Text = _
    11. "Kleiner Eins oder größer 20"
    12. Case 11 To 15
    13. lblAnzeige.Text = "Größer gleich 11 " _
    14. & "und kleiner gleich 15"
    15. Case Else
    16. lblAnzeige.Text = _
    17. "Größer 15 und kleiner 21"
    18. End Select
    19. End Sub
    20. End Class


    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten

    fichz schrieb:

    VB.NET-Quellcode

    1. Dim x As Integer = Val(zahlEingabe.Value) 'Hier war der Fehler
    Es was von VB.NET die Rede:

    VB.NET-Quellcode

    1. Dim x As Integer = CInt(zahlEingabe.Value) 'Hier war der Fehler
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Das vor .Value ist der Bezeichner der Komponente, beispielsweise MeinEditFeld
    .Value greift auf den Wert zu, der darin steht, also in dem Feld. In dem Falle wäre es .Text, abewr .Value geht bei manchen Komponenten auch.

    Stell es dir so vor:

    Ein Tisch hat:

    Eine Farbe (Color)
    Eine Form (Form)
    Eine Anzahl an Tischbeinen (LegCount)

    Man würde schreiben:

    Tisch.Color
    Tisch.Form
    Tisch.LegCount

    Der Tisch ist dabei das gesamte, .Color und die andern sind die einzelnen Eigenschaften oder Functions