所以我有4個複選框,如果其中一個選中,我想將該文本放入標籤。製作複選框將多行文本放入標籤
我的問題是,當一個框被選中,它只是在標籤中的文本,但沒有其他的檢查。我希望它爲每個選中的框添加一行,以便將新行文本放入標籤中。
我怎樣才能讓程序通過複選框,如果他們被選中將該文本放入一個標籤,並選擇下一個盒子開始一個新行並將該文本放在那裏?
被置於按鈕點擊事件下。
所以我有4個複選框,如果其中一個選中,我想將該文本放入標籤。製作複選框將多行文本放入標籤
我的問題是,當一個框被選中,它只是在標籤中的文本,但沒有其他的檢查。我希望它爲每個選中的框添加一行,以便將新行文本放入標籤中。
我怎樣才能讓程序通過複選框,如果他們被選中將該文本放入一個標籤,並選擇下一個盒子開始一個新行並將該文本放在那裏?
被置於按鈕點擊事件下。
快速和骯髒,但如果我明白你要求這個應該工作。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Label1.Text = ""
If (CheckBox1.Checked) Then
Label1.Text &= CheckBox1.Text & vbCrLf
End If
If (CheckBox2.Checked) Then
Label1.Text &= CheckBox2.Text & vbCrLf
End If
If (CheckBox3.Checked) Then
Label1.Text &= CheckBox3.Text & vbCrLf
End If
If (CheckBox4.Checked) Then
Label1.Text &= CheckBox4.Text & vbCrLf
End If
End Sub
將您所有的CheckBox
es放在同一個容器中。在這個例子中,它們都包含在Panel1
之內。這將獲得CheckBox
es的所有Text
屬性,並將Text
設置爲Label1.Text
。如果沒有選擇任何內容,則會引發Exception
(序列不包含元素)。
Try
Label1.Text = Panel1.Controls.OfType(Of CheckBox). _
Where(Function(arg) arg.Checked). _
Select(Function(arg) arg.Text). _
Aggregate(Function(aggregate, nextItem) aggregate & Environment.NewLine & nextItem)
Catch ex As Exception
Label1.Text = "Nothing selected"
End Try
試試這個代碼,
[注:測試與IDE
]
Private Sub Common_Cheked_Change_Handler(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles _
CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, _
CheckBox3.CheckedChanged, CheckBox4.CheckedChanged
Label1.Text = String.Empty
Label1.Text = If(CheckBox1.Checked = True, CheckBox1.Text & vbCrLf, String.Empty) & _
If(CheckBox2.Checked = True, CheckBox2.Text & vbCrLf, String.Empty) & _
If(CheckBox3.Checked = True, CheckBox3.Text & vbCrLf, String.Empty) & _
If(CheckBox4.Checked = True, CheckBox4.Text, String.Empty)
End Sub
謝謝!但是vbCrLF是什麼意思?用於學習海豚 – 2013-04-01 01:50:52
vbCrLf是回車換行符。就像如果你想在字符串中縮進縮進,你需要使用vbTab。 Dim strHello As String =「Hello」&vbTab&「World!」。 – 2013-04-01 05:38:29