【问题标题】:Making checked boxes put multiline text into a label制作复选框将多行文本放入标签中
【发布时间】:2013-03-28 14:01:59
【问题描述】:

所以我有 4 个复选框,如果其中一个被选中,我想将该文本放入标签中。

我的问题是,当检查一个框时,它只是在标签中具有该文本,而不是其他已检查的文本。我希望它为每个选中的框都有一个新行,以便将新行文本放入标签中。

我怎样才能让程序通过复选框,如果它们被选中,则将该文本放入标签中,并为选中的下一个框开始一个新行并将该文本放在那里?

置于按钮点击事件之下。

【问题讨论】:

    标签: vb.net button label


    【解决方案1】:

    又快又脏,但是如果我理解您的要求,这应该可以。

        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
    

    【讨论】:

    • vbCrLf 是回车换行。就像如果你想在一个字符串中缩进你需要使用 vbTab。 Dim strHello As String = "Hello " & vbTab & "World!"。
    【解决方案2】:

    将所有CheckBoxes 放在同一个容器中。在此示例中,它们都包含在 Panel1 中。这将获取检查的CheckBoxes 的所有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
    

    【讨论】:

      【解决方案3】:

      试试这个代码,

      [注意: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-27
        • 1970-01-01
        • 2016-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-13
        相关资源
        最近更新 更多