Duplikowanie ComboBoxów

0

Witam wszystkich,

napisałem sobie taką aplikacyjkę, w której są 2 formularze.

Na jednym formularzu jest pole ComboBox zasilone z bazy danych. Po kliknięciu przycisku otwiera się drugi formularz i na nim jednym z elementów jest również pole ComboBox. Chcę, żeby miało identyczne elementy jak to na pierwszym formularzu.

To co na razie zrobiłem:

  • W klasie formularza 2 stworzyłem zmienną publiczną typu ComboBox;

  • w klasie formularza 1 (pod jakimś przyciskiem) tworzę sobie formularz 2-gi... i przypisuję (patrz poprzedni punkt) ComboBox-owi z formularza 2 comboBox z formularza 1 (Form2.GlobalComboBox = comboboxForm1);

  • w formularzu 2gim mogę "zobaczyć" ile elementów ma combobox na formularzu z pierwszego formularza, ale jak wypełnić danymi ten combobox na 2gim formularzu???

  • zwykłe przypisanie: this.comboboxForm2 = GlobalComboBox nie działa... tzn, tak jak pisałem, mogę zobaczyć ile jest elementów w GlobalComboBox, ale nie mogę wyświetlić ich w comboboxie na drugim formularzu...

chcę zaznaczyć, że pracuję z bardzo bardzo dużą ilością danych w bazie, więc nie mogę odpytywać ciagle bazy danych...

najlepiej chciał bym załadować taki combobox do pamięci przy starcie aplikacji, a potem tylko go pokazywać w różnych miejsach aplikacji... tak na prawdę chciał bym, żeby w pamięci był tylko jeden taki combobox, a wywoływany był w dowolnym momencie aplikacji w dowolnym formularzu.

Czekam na info

Pozdrawiam

Rafał

0

Stwórz sobie kolekcję obiektów, które chcesz trzymać w combobox-ach i przekazuj ją jako argument konstruktora formy. Następnie przepisuj zawartość kolekcji do combobox-a. Podaje Ci przykład w VB.NET, który łatwo można przetłumaczyć na C#:

Form1

Public Class Form1
    Dim ComboItems As Collection
    Public Sub New()
        InitializeComponent()
        ComboItems = New Collection
        ComboItems.Add(New String("Option 1"))
        ComboItems.Add(New String("Option 2"))
        ComboItems.Add(New String("Option 3"))
        For Each element As Object In ComboItems
            ComboBox1.Items.Add(element)
        Next
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim frm As Form2 = New Form2(ComboItems)
        frm.Show()
    End Sub
End Class

Form2

Public Class Form2
    Public Sub New(ByVal ComboItems As Collection)
        InitializeComponent()
        For Each element As Object In ComboItems
            ComboBox1.Items.Add(element)
        Next
    End Sub
End Class

Pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1