Probleme mit der Inputbox

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Volker Bunge.

    Probleme mit der Inputbox

    Hallo zusammen,

    ich verstehe die Welt nicht mehr.

    Habe folgende Sub geschrieben
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub Automatisch_Unterverzeichnisse(Pfad As String)
    2. ' *************************************************************************
    3. ' Fragt aus dem kpl. Pfad die evtl. vorhandenen Unterverzeichnisse 1 + 2 ab
    4. ' Hierzu werden alle Verzeichnisse getrennt und ab dem zweiten kann dann jeweils die Auswahl für das erste oder zweite Unterverzeichnis gewählt werden
    5. ' *************************************************************************
    6. ' Hilfsvariablen anlegen
    7. Dim VerzNamen() As String
    8. Dim AnzeigeWerte As String
    9. Dim Auswahl As String
    10. ' Die Verzeichnisteile ermitteln
    11. VerzNamen = Split(Pfad, "\")
    12. AnzeigeWerte = "Welche Zahl soll das Unterverzeichnis 2 darstellen?" & vbCrLf & vbCrLf
    13. ' Den Text für die Abfrage erstellen
    14. ' Da die Unterverzeichnisse meist die letzten sind, wird die Anzeige auch von hinten nach vorne erstellt.
    15. ' 0 ist der Laufwerksbuchstabe, daher wird dieser ausgelassen
    16. For z = UBound(VerzNamen) To 1 Step -1
    17. ' Prüfen, ob es sich nicht um folgende Verzeichnisse handelt
    18. ' Folge, CD und MM - Verzeichnisse
    19. If InStr(UCase(VerzNamen(z)), "CD") = 0 And InStr(UCase(VerzNamen(z)), "FOLGE") = 0 And UCase(VerzNamen(z)) <> "MM" Then
    20. ' Anzeigetext erstellen
    21. AnzeigeWerte = AnzeigeWerte & Format(z, "00") & " = " & VerzNamen(z) & vbCrLf
    22. End If
    23. Next
    24. ' Noch eine 'Abbruch' - Möglichkeit einbauen
    25. AnzeigeWerte = AnzeigeWerte & "00 = gibt es nicht, weiter mit Unterverzeichnis 1"
    26. If MsgBox("Sind in dem Pfad" & vbCrLf & vbCrLf &
    27. Pfad & vbCrLf & vbCrLf &
    28. "1 oder 2 Unterverzeichnisse vorhanden?",
    29. MsgBoxStyle.DefaultButton2 + MsgBoxStyle.Question + vbYesNo,
    30. "Unterverzeichnisse vorhanden?") = MsgBoxResult.Yes Then
    31. ' Auswahl = InputBox("Welche Zahl soll das Unterverzeichnis 2 darstellen?" & vbCrLf & vbCrLf &
    32. 'AnzeigeWerte & "00 = gibt es nicht, weiter mit Unterverzeichnis 1")
    33. MsgBox(AnzeigeWerte & vbCrLf & vbCrLf & Len(AnzeigeWerte))
    34. Auswahl = InputBox(AnzeigeWerte)
    35. End If
    36. End Sub


    Wenn ich jetzt über call Automatisch_Unterverzeichnisse("E:\Test 1\Test 2\Folge 001\CD 01") mir das bisherige Ergebnis anzeigen lassen möchte, dann wird mir die Zeile mit '00 = ...' nicht in der Inputbox angezeigt. In der vorherigen MSGBox aber schon.

    Kann mir mal einer hier den Fehler nennen? Wie kann es sein, dass in der nächsten Zeile der vorherige Wert nicht mehr da ist?

    Auf diese Antwort bin ich mal gespannt. Oder gibt es hier ein Bug in VB.Net 2017?

    Gruß

    Volker

    CodeTags korrigiert; bitte zukünftig darauf achten, das richtige CodeHighlighting zu verwenden ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo,
    ich kann dein Problem nicht nachstellen. Bei mir wird alles in der Inputbox wie in der Messagebox dargestellt:
    Messagebox

    Brainfuck-Quellcode

    1. ---------------------------
    2. Microsoft.VisualBasic.Core
    3. ---------------------------
    4. Welche Zahl soll das Unterverzeichnis 2 darstellen?
    5. 02 = Test 2
    6. 01 = Test 1
    7. 00 = gibt es nicht, weiter mit Unterverzeichnis 1
    8. 130
    9. ---------------------------
    10. OK
    11. ---------------------------


    Ich musste erstmal den VB6-Namespace importieren und auf Option Strict Off schalten, bis es klappte <X

    Der gewünschte Text ist (wahrscheinlich) hinter der Eingabezeile. Häng noch zwei Leerzeilen dran und er ist sichtbar

    VB.NET-Quellcode

    1. Auswahl = InputBox(AnzeigeWerte & vbCrLf & vbCrLf)

    Ein weiterer Grund für mich, sich eine eigene InputBox zu basteln.
    Bilder
    • InputBox.png

      6,36 kB, 804×208, 68 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo zusammen,

    vielen Dank für die Antworten.

    Habe es jetzt mit den zwei Leerzeilen gelöst bekommen.

    Komisch ist das Verhalten schon.

    Werde mir das mit der eigenen Inputbox mal ansehen. Hätte auch den Vorteil, dass man die Schrift einstellen kann, eigene Bilder anzeigen kein Problem mehr wäre.

    Ich glaube, dass werde ich gleich mal machen.

    Gruß

    Volker