![](/img/trans.png)
[英]How can I check whether dynamically-created Checkboxes are checked (VB.NET)?
[英]Using VB.net, I have multiple dynamically generated checkboxes that I need to get their current checked state
我用谷歌搜索了一堆,找不到可行的解決方案。 我有一個帶有tabcontrol的VB.net 2010 .net4項目。 我需要能夠添加新標簽,每個標簽都有幾個面板和幾個按鈕和復選框。 然后我需要能夠確定每個選項卡上每個復選框的狀態。 這一切都動態生成,但我無法弄清楚如何在每個新選項卡上獲取復選框狀態。 我嘗試使用addHandler,但我不知道如何獲取特定復選框的值。 這是我到目前為止的代碼。
Public Class Form1
Public tabCount As Integer = 2
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim hwnd = addTab("new tab")
End Sub
Function addTab(name)
Dim newPanel As New Panel
Dim toolbar As New Panel
Dim reconnect As New CheckBox
'ADD TAB
tabCount = tabCount + 1
TabControl1.TabPages.Add(name & tabCount)
'MAIN PANEL, BINDS WITH EXE
newPanel.BackColor = Color.Black
newPanel.Dock = DockStyle.Fill
TabControl1.TabPages(tabCount - 1).Controls.Add(newPanel)
'TOOLBAR
ToolBar.BackColor = Color.White
ToolBar.Width = Me.TabControl1.Width
ToolBar.Height = 40
ToolBar.Top = 0
ToolBar.Left = 0
ToolBar.AutoScroll = False
newPanel.Controls.Add(ToolBar)
'CHECKBOX
reconnect.Text = "Reconnect"
reconnect.ForeColor = Color.Black
reconnect.Width = 180
reconnect.Top = 10
reconnect.Left = 10
ToolBar.Controls.Add(reconnect)
Return newPanel.Handle
End Function
End Class
在這兩行之間:
reconnect.Left = 10
ToolBar.Controls.Add(reconnect)
添加這個:
AddHandler reconnect.CheckedChanged, AddressOf CheckBox_CheckedChanged
假設你在某處聲明了這個:
Private Sub CheckBox_CheckedChanged(sender As Object, e As EventArgs)
Dim chk As CheckBox = DirectCast(sender, CheckBox)
If chk.Checked Then
'checkbox was checked
Else
'checkbox was unchecked
End If
End Sub
您應該能夠將DirectCast
sender
到CheckBox
並通過Text
(或任何其他屬性)標識您的CheckBox
。
注意:您不需要公共變量或類似的東西來完成上述工作。
'如果你想檢查一個復選框。我們檢查了事件
If chkbx.Checked Then
'Do what you want to do
End If
希望它有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.