MessageBox mit Eigenschaften aus einer ListBox

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    MessageBox mit Eigenschaften aus einer ListBox

    Hallo,
    Ich habe hier ein kleines Problem:
    Ich würde gerne eine Message Box zeigen lassen, bei der man vorher die Eigenschaften festlegen kann:



    Das ich die UTicket.dll verwende, muss erst einmal alles in eine ListBox 'gepackt' werden.

    VB.NET-Quellcode

    1. Private Sub msgBoxSenden()
    2. Dim Eigenschaften As New List(Of Object)
    3. Eigenschaften.Add(ComboBox1.Text)
    4. Eigenschaften.Add(ComboBox2.Text)
    5. Eigenschaften.Add(RichTextBox1.Text)
    6. Eigenschaften.Add(TextBox1.Text)
    7. End Sub


    Doch nun weiß ich nicht wie ich das ganze so auslesen kann:
    Mein Ansatz:

    VB.NET-Quellcode

    1. ​MessageBox.Show(MessageBox.Show((CStr(oUserData(3).ToString)), CStr(oUserData(2).ToString)), CType(oUserData(1)), CType(oUserData(0))))


    Alles scheitert, kann mir jemand helfen?

    Gesuchter schrieb:

    Mein Ansatz:
    Option Strict On.
    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!

    Gesuchter schrieb:

    Dim Eigenschaften As New List(Of Object)

    Da du nur Strings in die Liste packen willst:
    Dim Eigenschaften As New List(Of String)
    Und dann
    MessageBox.Show(String.Join(" - ", Eigenschaften))

    Sorry. Frage falsch interpretiert.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „petaod“ ()

    Hallo Gesuchter!

    Das könnte dir helfen ...

    VB.NET-Quellcode

    1. MessageBox.Show("text", "titel", DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxButtons), "OK"), System.Windows.Forms.MessageBoxButtons), DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxIcon), "Asterisk"), System.Windows.Forms.MessageBoxIcon))


    Die Sache ist dabei, dass es sich bei den letzten beiden Eigenschaften um Enumerationen, und nicht um String-Parameter handelt! :)

    Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
    Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
    :thumbsup:

    mrwebber schrieb:

    Hallo Gesuchter!

    Das könnte dir helfen ...

    VB.NET-Quellcode

    1. MessageBox.Show("text", "titel", DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxButtons), "OK"), System.Windows.Forms.MessageBoxButtons), DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxIcon), "Asterisk"), System.Windows.Forms.MessageBoxIcon))


    Die Sache ist dabei, dass es sich bei den letzten beiden Eigenschaften um Enumerationen, und nicht um String-Parameter handelt! :)

    Wow, wie kompliziert ist das denn? :D
    Man kann einfach die Enums erstellen und in nem Switch oder If statements ansprechen ^^
    C# Developer
    Learning C++
    Klaro ;) Dieser Ansatz wäre natürlich effizienter, da nur die nötigen Infos übertragen werden.
    Ich dachte nur, für den Anfang sollte man den Ball erstmal flach halten, Erfolge haben.
    Später mit der Programmiererfahrung kommt das Effizienz-Denken auch automatisch und Gesuchter wird sicherlich auch in diese Richtung gehen ;)

    Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
    Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
    :thumbsup:
    @mrwebber Ich habe jetzt diesen Code :

    VB.NET-Quellcode

    1. MessageBox.Show((CStr(oUserData(3).ToString)), CStr(oUserData(2).ToString)), DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxButtons), CStr(oUserData(1).Tostring), System.Windows.Forms.MessageBoxButtons), DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxIcon), oUserData(0).ToString), System.Windows.Forms.MessageBoxIcon))
    Dieser Funktioniert jedoch auch nicht. Fehlermeldung: Code: BC30205 Beschreibung: Anweisungsende erwartet.

    PS: Mist, ich dachte ich hätte das schon gestern Abend gepostet.
    Du hast zu viele schließende Klammern, genauer hinter den ersten beiden Parameter.
    Aber sag mal, weißt du eig was dieses "ToString" und "CStr" bewirken ? Nach deiner Verwendung nämlich nicht ;)
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    Wie ThePlexian sagt ... irgendwo ist ein Klammer vorloren gegangen oder eine zu viel.
    Der Ansatz ist richtig, nur ein Schreibfehler also.

    VB.NET-Quellcode

    1. MessageBox.Show(oUserdata(3).toString, oUserdata(4).toString, DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxButtons), oUserdata(1).toString), System.Windows.Forms.MessageBoxButtons), DirectCast([Enum].Parse(GetType(System.Windows.Forms.MessageBoxIcon), oUserdata(0).toString), System.Windows.Forms.MessageBoxIcon))


    Variablen über das Internet senden? [VB.NET] Universal Ticket.dll :thumbup:
    Lasse deine Programme selbstständig lernen! [VB.NET] Brain.dll
    :thumbsup:

    Gesuchter schrieb:

    Dieser Funktioniert jedoch auch nicht.
    Pack Dir jeden Parameter einzeln in eine Variable entsprechenden Typs.
    Da kannst Du Debug-mäßig was sehen und eingreifen und die Aufrufzeile selbst hat dann nur diese 4 Parameter.
    Das Studio markiert Dir zusammengehörige Klammern, wenn der Cursor dtauf steht.
    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!