[英]How can I show the text of the only "Checked" checkboxes into a Msgbox in Vb.net?
我正在使用 vb.net,這是我的問題。 假設我有 3 個復選框。
我想要做的是當我點擊“披薩”和“薯條”時,Msgbox 只會顯示“選中”復選框上的文本:
並且不包括未選中的一個復選框。 任何幫助將不勝感激
MessageBox.Show(String.Join(", ",
Controls.OfType(Of CheckBox)().
Where(Function(cb) cb.Checked).
Select(Function(cb) cb.Text)))
這假定所有CheckBoxes
都直接在表單上,並且它們是表單上唯一的CheckBoxes
。 如果它們在某個其他子容器中,您將使用該容器的Controls
集合。 如果同一個容器中可能有其他CheckBoxes
,您可以添加一個Panel
並將這些CheckBoxes
放入其中。 如果您更喜歡使用查詢語法的 LINQ 而不是 function 語法:
MessageBox.Show(String.Join(", ",
From cb In Controls.OfType(Of CheckBox)()
Where cb.Checked
Select cb.Text))
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AddHandler chkFiries.CheckedChanged, AddressOf checkedChanged
AddHandler chkIcecream.CheckedChanged, AddressOf checkedChanged
AddHandler chkPizza.CheckedChanged, AddressOf checkedChanged
End Sub
Private Sub checkedChanged(sender As Object, e As System.EventArgs)
Dim checkedNames As String
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is CheckBox Then
Dim chkbox = TryCast(ctrl, CheckBox)
If chkbox.Checked = True Then
checkedNames += chkbox.Text & ","
End If
End If
Next
MessageBox.Show(checkedNames)
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.