Controls auf Panel dynamisch hinzufügen

  • C#

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Petersilie.

    Controls auf Panel dynamisch hinzufügen

    Hallo Leute,

    ich wollte mal das dynamische hinzufügen von Controls ausprobieren.

    Die Controls sollen and die Position eines Listview Items gesetzt werden, welche sich auf einem Panel befindet.
    Einen Fehler bekomme ich nicht, die Controls die ich hinzufüge, sind aber nicht da bzw. nicht sichtbar.

    Ich komm nicht drauf warum...

    Hab ich im unten stehenden Code einen Fehler gemacht?

    C#-Quellcode

    1. private ComboBox AddComboBox(string[] values,Point p, string ComboName)
    2. {
    3. ComboBox cb = new ComboBox();
    4. cb.Name = ComboName;
    5. cb.Items.AddRange(values);
    6. cb.Width = 300;
    7. cb.Height = 20;
    8. cb.Visible = true;
    9. cb.Show();
    10. cb.BackColor = Color.Aquamarine;
    11. cb.Location = p;
    12. cb.SelectedValueChanged += new EventHandler(NewCombo_SelectedValueChanged);
    13. return cb;
    14. }
    15. private void AddStuff()
    16. {
    17. lv_TypV.BeginUpdate();
    18. lv_NrV.BeginUpdate();
    19. string[] values = new string[] { "x", "xx", "y", "yy" };
    20. for (int i = 1; i <= 6; i++)
    21. {
    22. ListViewItem item = new ListViewItem(i.ToString());
    23. ListViewItem item2 = new ListViewItem(i.ToString());
    24. item.SubItems.Add("");
    25. lv_TypV.Items.Add(item);
    26. // p = X-Pos v. ListView + X-Pos v. ListViewItem, Y-Pos...wie X
    27. Point p = new Point(lv_TypV.Location.X + lv_TypV.Items[i - 1].Position.X, lv_TypV.Location.Y + lv_TypV.Items[i - 1].Position.Y);
    28. ComboBox cb = AddComboBox(values, p, "Vorschrfiten_" + i);
    29. panel_ScrollPanel.Controls.Add(cb);
    30. lv_NrV.Items.Add(item2);
    31. }
    32. lv_TypV.EndUpdate();
    33. lv_NrV.EndUpdate();
    34. }
    @Petersilie Sieh Dir mal die Location an, wo die Controls hingesetzt werden.
    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!