簡體   English   中英

使用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 senderCheckBox並通過Text (或任何其他屬性)標識您的CheckBox

注意:您不需要公共變量或類似的東西來完成上述工作。

'如果你想檢查一個復選框。我們檢查了事件

 If chkbx.Checked Then
    'Do what you want to do 
End If

希望它有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM