Public Class Form1
Private oForm As Form
' Przycisk na Form1
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
oForm.Visible = True
Catch ex As Exception
initializeForm()
Finally
oForm.Visible = True
End Try
End Sub
Private Sub initializeForm()
oForm = New Form
' Przykładowe ustawienia okna
oForm.Text = "Form2" ' Dowlny tekst - caption okna
oForm.Size = New Size(200, 200)
oForm.MaximumSize = New Size(200, 200)
oForm.MinimumSize = New Size(200, 200)
oForm.Owner = Me
oForm.FormBorderStyle = FormBorderStyle.FixedDialog
oForm.ControlBox = False
oForm.AutoSize = False
AddHandler oForm.Activated, AddressOf Form2_Activated
' Dodawanie checkbox'ów
Dim locationOffset As Integer = 20
Dim width As Integer = 20
Dim checkboxName As String() = New String() {"Pytanie1", "Pytanie2", "Pytanie3", "Pytanie4", "Pytanie5"}
Dim checkboxText(5) As String
checkboxText(0) = "Tresć pytanie 1"
checkboxText(1) = "Tresć pytanie 2"
checkboxText(2) = "Tresć pytanie 3"
checkboxText(3) = "Tresć pytanie 4"
checkboxText(4) = "Tresć pytanie 5"
For index As Integer = 0 To checkboxName.GetUpperBound(0)
Dim checkBox = New CheckBox
checkBox.Location = New Point(20, locationOffset)
checkBox.Size = New Size(100, width)
checkBox.Name = checkboxName(index)
checkBox.Text = checkboxText(index)
oForm.Controls.Add(checkBox)
locationOffset = locationOffset + width
Next
Dim button = New Button
button.Location = New Point(20, locationOffset)
button.Size = New Size(100, 20)
button.Text = "Wprowadź"
AddHandler button.Click, AddressOf Form2_Button1_Click
oForm.Controls.Add(button)
End Sub
' Przycisk na utworzonej Form'ie
Private Sub Form2_Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
' Kod do sprawdzenia stanu checkBox'ów z utworzonej Form'atki
Dim msgboxStyle As MsgBoxStyle = msgboxStyle.Information + msgboxStyle.OkOnly + msgboxStyle.SystemModal
For Each control In oForm.Controls
If (TypeOf (control) Is CheckBox) Then
MsgBox(control.Name & " = " & control.checked, msgboxStyle)
If (control.Name = "Pytanie1" And control.checked = True) Then
MsgBox("Pytanie1 - zaznaczony" & vbCrLf & control.Text, msgboxStyle)
End If
End If
Next
' Koniec sprawdzenia stanu
oForm.Visible = False
End Sub
' Nowa Form'atka zawsze pokazuje się nad Form1
Private Sub Form2_Activated()
oForm.Location = Me.Location
End Sub
End Class