Werte aus klassen in Steuerelemente einfügen

  • Ich bin mit der Syntax nicht allzusehr vertraut und mir kommt ein großes problem was mich intensiv stört.
    Ich möchte Werte(Strings, ints etc.) in z.b. eine listbox combobox einfügen und das oft, problem ist ich weiß nicht wie ich das effektiv und schnell genug mache.


    Kann mir da jemand einen trick verraten

  • Beispiel:
    (mehr oder weiniger)


    [cs]class Person
    {
    public string name;
    public byte Alter;
    }
    [/cs]


    [cs]Person p = new Person();
    p.name = "Hans";
    p.Alter = 15;
    Listbox.Items.Add(string.Format("Name: {0} Alter: {1}",p.Name,p.Alter));[/cs]


    Hab jetzt nicht auf Fehler überprüft. Habs einfach nur mal so hin getippt.

    Zitat

    Dr. Gregory House: You've gotta get down here. They've got a satellite aimed directly into Cuddy's vagina. I told them that chances of invasion are slim to none but...

  • GENAUSO habe ich es gemacht, es funktioniert aber nicht er bleibt immer hängen, hier mein codebeispiel





  • Ah.. du benutzt nestle´s xBot code. ;)
    Das Problem ist dass du aus den Asynchoren funktionen auf das Fester zugreifst.


    Das sollte dir helfen:
    [cs] public static class CrossThreadUtility
    {
    // http://www.codeproject.com/KB/cs/GenericCrossThread.aspx
    public static void InvokeControlAction<t>(t cont, Action<t> action) where t : Control
    {
    if (cont.InvokeRequired)
    { cont.Invoke(new Action<t, Action<t>>(InvokeControlAction), new object[] { cont, action }); }
    else
    { action(cont); }
    }
    public static void InvokeStripAction<t>(t cont, Action<t> action) where t : ToolStripComboBox
    {
    if (Globals.MainWindow.InvokeRequired)
    { Globals.MainWindow.Invoke(new Action<t, Action<t>>(InvokeStripAction), new object[] { cont, action }); }
    else
    { action(cont); }
    }
    }[/cs]



    Code beispiel:


    [cs]
    if(Globals.ClientlessWindow.lstView.InvokeRequired)
    {
    CrossThreadUtility.InvokeControlAction(lstView,lst =>lst.Items.Add("Was auch immer"));
    }
    else
    {
    Globals.ClientlessWindow.lstView.Items.Add("Was auch immer");
    }
    [/cs]



    Gibt vermutlich bessere Lösungen. Funktioniert aber.

    Zitat

    Dr. Gregory House: You've gotta get down here. They've got a satellite aimed directly into Cuddy's vagina. I told them that chances of invasion are slim to none but...

  • Sehe grade dass die If Abfrage unnötig ist weil es auch in der Helferfunktion schon drin ist.


    [cs]CrossThreadUtility.InvokeControlAction(lstView,lst =>lst.Items.Add("Was auch immer"));[/cs]


    Und das kann man dann wirklich nicht mehr als Codewirrwar bezeichnen. ;)

    Zitat

    Dr. Gregory House: You've gotta get down here. They've got a satellite aimed directly into Cuddy's vagina. I told them that chances of invasion are slim to none but...