vb.net - 根据 GroupBox 的复选框设置 CheckBox 已选中

标签 vb.net winforms checkbox groupbox

早上好 我想问一些与复选框相关的问题 我必须有一组复选框,看起来像这样

enter image description here

我的问题是,每当我选中组 Purchase Requisition 中的任何复选框时,如何选中复选框 Purchase Requisition ,如果所有复选框均未选中,则复选框 Purchase申请未选中。

我有此代码,并将此代码放在 Groupbox 内的所有复选框上采购申请

  Sub check_Purchase_Req()
        Dim oCtl As Control
        Dim iX As Integer

        For Each oCtl In GroupBox3.Controls
            If TypeName(oCtl) = "CheckBox" And oCtl.Enabled = True Then iX = iX + 1

            If iX > 0 Then
                CheckBox1.Checked = True

            ElseIf CheckBox19.Checked = False And CheckBox20.Checked = False And CheckBox21.Checked = False And CheckBox22.Checked = False And CheckBox23.Checked = False Then

                CheckBox1.Checked = False
                Exit For
            End If
        Next
    End Sub

但是这段代码不符合我的需要

感谢 TYSM 的任何帮助

最佳答案

使用 linq 来完成此类任务可以让生活变得更轻松:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    GroupBox1.Controls.OfType(Of CheckBox).ToList() _
             .ForEach(Sub(c) AddHandler c.CheckedChanged, AddressOf CheckChanged)
End Sub
Private Sub CheckChanged(sender As Object, e As EventArgs)
    CheckBox1.Checked = GroupBox1.Controls.OfType(Of CheckBox).Any(Function(c) c.Checked)
End Sub

在上面的代码中,我认为 GroupBox1 是正确的,而 CheckBox1 是您想要根据 CheckBox 检查或取消选中的那个GroupBox1 的控件。

关于vb.net - 根据 GroupBox 的复选框设置 CheckBox 已选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39283513/

相关文章:

javascript - 在 asp.net 中应检查至少一个复选框的复选框验证

vb.net - 如何在 Visual Studio 中为 Visual Basic Web 部署项目禁用警告

c# - 单击 NotifyIcon 切换表单可见性并在其他地方单击时隐藏它

android - 在复选框文本上设置 onClickListener

c# - 根据数据表值在gridview中设置复选框

c# - 在 winform TextBox 中自动完成 [包含而不是开始]

c# - 在运行时合并 ResX 文件?

MySqlConnection' 在命名空间'MySql.Data.MySqlClient [Visual Basic -VS2008] 中不明确

excel - 允许 VB.NET 应用程序将 Excel 文件转换为数据表

c# - 搜索 DataGridView,然后突出显示在其中找到值的单元格?