vb窗体,左边为不定项复选框,单击“下一学科”可将选中的学科逐一在学科textbox中显示,即循环显示。

左边的复选框可选中,也可取消选中状态。本题由于网络的原因提交了两次,已有高手syx54(来自团队VB角)利用控件数组、IF语句、FOR语句提供了很好的答案,请参看。如有新... 左边的复选框可选中,也可取消选中状态。
本题由于网络的原因提交了两次,已有高手 syx54( 来自团队 VB角 )利用控件数组、IF语句、FOR语句提供了很好的答案,请参看。如有新的答案,请提供,赏分照给哈。
展开
 我来答
Smart_wolf
2012-11-15 · TA获得超过1696个赞
知道小有建树答主
回答量:1468
采纳率:50%
帮助的人:644万
展开全部
private sub cmd_click()
if chk1 then text1="语文"
if chk2 then text1=text1+"数学"
If chk3 then text1=text1+"英语"
if chk4 then text1=text1+"物理"
if chk5 then text1=text1+"化学"
end sub
更多追问追答
追问
加油,希望能看到完整的答案,你的代码仅能在text1中显示选择了的,不能中途变更,更不能实现逐一循环显示。
追答
你要的是单击“下一学科”按钮的事件,我就按这个事件写的。如果要动态效果的话,那就只能用复选框的单击事件,这个时候建议5个复选框和5个label控件全部使用控件数组,然后复选框的单击事件如下:
Private Sub Check1_Click(Index As Integer)
Dim x As Integer, y As String
If Check1(Index) Then
Text1 = Text1 + Label1(Index)
Else
x = InStr(Text1, Label1(Index))
y = Text1
Text1 = Left(Text1, x - 1) + Right(y, Len(y) - x - 1)
End If
End Sub
这样你随便单击哪个复选框,文本框会根据复选框的选中与否自动将所选复选框的标签显示出来
风雪剑无痕
2012-11-13 · TA获得超过1253个赞
知道大有可为答主
回答量:1691
采纳率:100%
帮助的人:1678万
展开全部
复选框用控件数组即可
追问
具体操作和代码。注意要求:1。学科的选择是不定的,如可选3科也可能选4科;2。显示方式是一一循环出现在学科旁的文字框内。举例:这次我选的是语文、英语、化学,右边的学科文字框中显示“语文”,单击“下一学科”,就显示为“英语”,再单击,显示“化学”,再单击,又显示“语文”;如重新选择左边的复选框,则发生相应的变化。这个模式对于数据库录入比较有用,提出来大家研究。
追答
'呵呵,那我就不妨再献一次丑,复选框控件的名称依然使用默认值
Private Sub Command1_Click()
Static m%, n%, s() As String
Dim Ctl As Control
For Each Ctl In Me.Controls
If TypeName(Ctl) = "CheckBox" Then
If Ctl.Value = 1 Then
m = m + 1
ReDim Preserve s(m)
s(m) = Right(Ctl.Name, 1)
End If
End If
Next
Text1.Text = Controls("Check" & s(m - n)).Caption
n = n + 1
If n = m Then n = 0
m = 0
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
s业余生活s
2012-11-14 · 超过11用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:14.7万
展开全部

Dim a(5) As String

Private Sub Check1_Click(Index As Integer)

aaa = Form1.Check1(Index).Caption

Text1.Text = Left(aaa, 2)

Text2.Text = Right(aaa, 2)

 

End Sub

Private Sub Command1_Click()

For i = 0 To 4

  If Form1.Check1(i).Value = 1 Then

    a(num) = Form1.Check1(i).Caption

    num = num + 1

  End If

Next i

 

For i = 0 To 4

    If Left(a(i), 2) = Text1.Text Then

               num_d = i + 1

               If num_d >= num Then num_d = 0

                    Text1.Text = Left(a(num_d), 2)

                    Text2.Text = Right(a(num_d), 2)

               Exit For

    End If

Next i

 

End Sub

试试吧 应该可以

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式