Po kliknutí na tlačidlo vytvárate nový objekt typu Form1, teda nový formulár. Čo očakávate, že bude vybraté v ComboBoxe na tomto novom formulári? Pokiaľ procedúra Button1_Click patrí pod triedu Form1(resp. tlačítko Button1 je na forme Form1), tak dajte rovno ComboBox1.SelectedItem . Taktiež, premenná pozdrav je zjavne zbytočná, keďže len raz do nej dávate hodnotu, a tú použijete len raz. Taktiež aj blok Select Case je zbytočný, keďže to, čo dáte do konkrétneho Case, je "do bodky" opísané aj do MsgBoxu. Čiže, pokiaľ máte Button1 na Form1, dal by som do kódu toto:
Public Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
MsgBox(ComboBox1.SelectedItem)
End Sub
Pokiaľ Button1 nie je na Form1, budete musieť predať odkaz na konkrétny objekt typu Form1 do triedy formulára, na ktorom je Button1. Konkrétnym objektom myslím premennú typu Form1, ktorá už má svoju hodnotu. Čiže takto nie:
REM NESPRÁVNE
Form1.ComboBox1.SelectedItem
REM OPÄŤ NESPRÁVNE:
Dim frm As New Form1
frm.ComboBox1.SelectedItem
Prečo? Form1 je názov triedy, nie jej objektu. Premenná frm v tomto príklade je síce konkrétny objekt typu Form1, ale jej hodnotou bude vždy nový a nový Form1, ktorého ComboBox1 bude samozrejme prázdny.
|