【问题标题】:Check box and label connection复选框和标签连接
【发布时间】:2015-10-16 00:39:46
【问题描述】:

我正在生成各种数量的复选框 1-x 和标签 1-x:

WithEvents lb_cislozakazky As Windows.Forms.Label
WithEvents check_m As Windows.Forms.CheckBox

For i = 1 To x
        check_m = New Windows.Forms.CheckBox
        check_m.Name = "check_manual" & i
        check_m.Top = i * 20 - 19
        check_m.Left = 35
        check_m.Width = 20
        check_m.Height = 20
        Panel2.Controls.Add(check_m)   
 next

现在我想将一个复选框与一个标签连接起来。例如:当你检查chckbox1时,label1会变成红色。

【问题讨论】:

  • 在添加标签之前,请阅读标签说明以确保它们适合您的帖子!谢谢你。我假设这是 VB.net,所以我用它来标记它。如果我错了,请换一个标签。

标签: vb.net checkbox


【解决方案1】:

在将CheckStateChanged 事件添加到面板之前,您需要将event handler 添加到您的复选框中。然后在事件处理函数中,只需作用于名称中的 i 值,就可以用对应的 i 值改变标签的属性。

WithEvents lb_cislozakazky As Windows.Forms.Label
WithEvents check_m As Windows.Forms.CheckBox

For i = 1 To 10
    check_m = New Windows.Forms.CheckBox
    check_m.Name = "check_manual" & i
    check_m.Top = i * 20 - 19
    check_m.Left = 35
    check_m.Width = 20
    check_m.Height = 20
    lb_cislozkzky = New Windows.Forms.Label
    select case (i)
        case 1 : lb_cislozakazky.Caption = "My caption for label 1"
        case 2 : lb_cislozakazky.Caption = "My caption for label 2"
        ...
    end select
    'do sizing positioning of label here:
    lb_cislozakazky.Name = "lb_cislozakazky" & i
    AddHandler lb_cislozakazky.CheckStateChanged, AddressOf CheckBox_CheckStateChanged
    Panel2.Controls.Add(lb_cislozakazky)
    Panel2.Controls.Add(check_m)   
next


Private Sub CheckBox_CheckStateChanged(sender as Object, e as EventArgs)
Dim index as integer
Dim msg as string

    if not integer.tryparse(((CheckBox)sender.Name.Remove(0, 15)), index) then index = -1

    if index <> -1 Then
        msg = "You pressed button " & index &", which is next to lb_cislozakazky_" & index & " and the label caption is: " & yourArrayOfLabelCaptions(index)

    Else
        msg = "Error - unable to determine index, check the name: " & (CheckBox)sender.Name & vbcrlf & " and try again!"    
    End If
    MessageBox.Show(msg)
end Sub

如您所见,我使用您现有的伪代码来实现所有这些。您没有指定数组名称,因此您需要将 yourArrayOfLabelCaptions 替换为您的数组。

【讨论】:

  • 我试着走这条路,但它不起作用。我无法识别检查了哪一个。您能否给我一些文章链接,我可以在哪里阅读它?我不知道我应该在哪里寻找它。或者如果你有时间做一些例子,我会很高兴的。
  • MSDN 是你的friend
  • 非常喜欢这个 cmets!使用谷歌,使用大脑 atc ......我已经检查了我能做的。
  • 我没有说过这样的话,但是由于您没有提供甚至接近功能性的代码并详细说明了代码的特定问题,因此我坚持使用您需要的资源来做您想做的事。如果您在我对此答案的第一条评论中检查“朋友”链接,您会看到在 MSDN 中搜索 CheckBox 控件。第一个结果包含检查复选框的 .Checked 状态所需的所有详细信息。您可能找不到的唯一一件事是如何将事件处理程序的发送者对象转换为 ChecBox,如果您无法弄清楚,我很乐意回答。
  • 当我按下按钮 1-x 时,我能够显示带有数字 1-x 的 msgbox。那不是问题。但。我怎样才能显示 MSGbox 写在哪里:“你只需按标签 _2 旁边的 btn_2,标签中写着一句话:”xxxxxxxxx xxxxxxx xxxxx” 这句话是各种各样的......(来自数组的红色)
猜你喜欢
  • 2011-10-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-11
  • 1970-01-01
相关资源
最近更新 更多