我有一个带有 12 个复选框的组框(包含一年中的月份)。我需要计算并在文本框中显示该值。
例如,如果选中一个复选框然后单击按钮计算,它应该能够在文本框中显示值 500,如果选中两个复选框,则总数应为 1000,如果三个复选框则总数应为 1500等等
我是这样开始的
Dim counter As Integer = 0
counter = counter + 500
很长一段时间以来,我一直在为此烦恼:(
我有一个带有 12 个复选框的组框(包含一年中的月份)。我需要计算并在文本框中显示该值。
例如,如果选中一个复选框然后单击按钮计算,它应该能够在文本框中显示值 500,如果选中两个复选框,则总数应为 1000,如果三个复选框则总数应为 1500等等
我是这样开始的
Dim counter As Integer = 0
counter = counter + 500
很长一段时间以来,我一直在为此烦恼:(
您可以使用 for 循环查看组框中的所有复选框
'Initialize the total value
Dim Total As Integer = 0
'Loop all controls in the group box
For Each ctrl As Control In GroupBox1.Controls
'Only calculate if the control is a check box
If TypeName(ctrl) = "CheckBox" Then
'Validate if the checkbox is checked
If CType(ctrl, CheckBox).Checked Then
'Add 500 for each checked checkbox
Total += 500
End If
End If
Next
TextBox1.Text = Total.ToString
我想到了另外两个选择:
按照以下方式设置 .CheckedChanged 事件:
Private Sub Month_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles Ctrl1.CheckedChanged, Ctrl2.CheckedChanged, Ctrl3.CheckedChanged, ... etc.
if sender.checked then
Total +=500
else
Total-= 500
End if
end sub
这样你就不需要计算按钮了。
我认为您也可以使用 CheckedListBox 并使用
Me.Ctrls.CheckedItems.Count * 500
在计算按钮子或 SlectedIndexChanged 事件中但我没有尝试过