我非常新的这一切,并同时我试图寻找我无法找到任何东西,帮助我实现我追求的。获得的所有复选框中的一个TabControl文本字符串
我在VB一个窗体具有以下:
1×的tabcontrol 10×复选框,其坐在各个选项卡上的标签控制 1×列表框
在i剔任何的复选框,我希望他们的文本被添加到列表框中,当我解开时,他们的文本将从列表框中获取。
我可以非常容易地使用每个复选框的changedcheck事件的if语句来实现这一点,但我必须为每个复选框都这样做,因为这可能会导致20,30个40+的复选框。另外,如果我在稍后阶段添加一个,我将不得不记得添加它的代码。
理想的情况下,我想这是一个方法,说:您在TabControl的所有复选框,如果有值为true写他们的文本字符串,如果值是假的,采取从字符串有文字。把该字符串放在列表框中。
我开始用这样的事情...
Dim chk As CheckBox
Dim txt As String = ""
For Each chk In TabControl1.Controls
If chk.Checked = True Then
txt = txt + chk.Text +vbCrLF
Else
txt = replace(txt, chk.text + vbCrLf, "")
End If
Next
End Sub
第一个问题是,上面显然是行不通的!所以任何指导表示赞赏 - 我把它从阅读其他代码的废料放在一起。
第二个问题是,我无法得到我的头如何列表框将被更新,因为以前我使用每个控件的CheckedChanged事件,如果我做我想做的事,那么不会是一个具体的CheckedChanged事件,因为它可能是任何复选框(希望这是有道理的!)。我不希望有按一个按钮,将选中的复选框添加到列表框,我希望它是动态的
任何帮助是非常赞赏。
非常感谢@jacob谢列兹尼奥夫的响应,我可以看到你已经完成了TypeOf,但由于我的tabcontrol中的所有控件总是复选框,我不会认为它需要它? - 虽然我会把你的话当作明确的不知道更好的!不幸的是,我得到使用修改后的代码时,下面...经过”不是成员‘System.Windows.Forms.Control的’。这可能是我应该知道的非常基本的东西,你能指出我正确的方向吗?再次感谢 – 2012-07-21 09:52:08
@StephenDraper您需要强制类型转换CHK到复选框。看到我编辑的答案。 – 2012-07-21 10:19:53