VB 如何动态创建一个组框来显示和分组数组中的单选按钮?
VB How do I dynamically create a groupbox to appear and group radiobuttons which are in an array?
我有一个 2 RadioButtons
的数组。一个显示文本 "TRUE",另一个显示 "FALSE",当用户 select 提出 TRUE/FALSE 风格的问题时它们会出现。
然而,当多个 TRUE/FALSE 风格的问题被 select 编辑时,RadioButtons
似乎都被链接起来,而不是在它们出现的成对中链接。例如如果 3 个问题的测验有 2 个 TRUE/FALSE 式问题,那么当您 select 一个问题的答案时,它会删除另一个 TRUE/FALSE 式问题的答案。
参考代码:(在 For 循环 (k) 和 select 案例中(当 selected 真假题时))
grpTrueFalse(k) = New GroupBox
grpTrueFalse(k).Location = New Point((X - 10), (Y - 10))
grpTrueFalse(k).BackColor = Color.Transparent
grpTrueFalse(k).Visible = False
grpTrueFalse(k).Width = 250 : grpTrueFalse(k).Height = 50
frmQuizBuild.Controls.Add(grpTrueFalse(k))
rdbtrue(k) = New RadioButton : rdbtrue(k).Location = New Point((X + 120), Y)
rdbtrue(k).Text = "TRUE" : rdbtrue(k).Font = New Font("Arial", 15)
rdbtrue(k).BackColor = Color.Transparent
frmQuizBuild.Controls.Add(rdbtrue(k))
rdbfalse(k) = New RadioButton : rdbfalse(k).Location = New Point(X, Y)
rdbfalse(k).Text = "TRUE" : rdbfalse(k).Font = New Font("Arial", 15)
rdbfalse(k).BackColor = Color.Transparent
frmQuizBuild.Controls.Add(rdbfalse(k))
郑重声明,GroupBox
出现在 RadioButtons
之上,目前实际上没有做任何事情。
如果我的理解是正确的,您可以使用复选框。
如果不是这样
您是否尝试过向单选按钮添加事件处理程序?
所以:
Addhandler.radioButton1_CheckedChanged , AddressOf EventHandler
EventHandler 是您正在使用的子或 class。
这有意义吗?
您的代码需要类似于:
Dim arrRButton(1) As RadioButton
arrRButton(0) = New RadioButton
arrRButton(1) = New RadioButton
Dim GroupBox1 As New GroupBox
With GroupBox1
.Controls.Add(rdbTrue(k))
.Controls.Add(rdbFalse(k))
End With
您也可以使用类似的 With
块来设置位置。 (例如;With arrRButton(0)
然后 .Location = x
、.Text = x
等)
我有一个 2 RadioButtons
的数组。一个显示文本 "TRUE",另一个显示 "FALSE",当用户 select 提出 TRUE/FALSE 风格的问题时它们会出现。
然而,当多个 TRUE/FALSE 风格的问题被 select 编辑时,RadioButtons
似乎都被链接起来,而不是在它们出现的成对中链接。例如如果 3 个问题的测验有 2 个 TRUE/FALSE 式问题,那么当您 select 一个问题的答案时,它会删除另一个 TRUE/FALSE 式问题的答案。
参考代码:(在 For 循环 (k) 和 select 案例中(当 selected 真假题时))
grpTrueFalse(k) = New GroupBox
grpTrueFalse(k).Location = New Point((X - 10), (Y - 10))
grpTrueFalse(k).BackColor = Color.Transparent
grpTrueFalse(k).Visible = False
grpTrueFalse(k).Width = 250 : grpTrueFalse(k).Height = 50
frmQuizBuild.Controls.Add(grpTrueFalse(k))
rdbtrue(k) = New RadioButton : rdbtrue(k).Location = New Point((X + 120), Y)
rdbtrue(k).Text = "TRUE" : rdbtrue(k).Font = New Font("Arial", 15)
rdbtrue(k).BackColor = Color.Transparent
frmQuizBuild.Controls.Add(rdbtrue(k))
rdbfalse(k) = New RadioButton : rdbfalse(k).Location = New Point(X, Y)
rdbfalse(k).Text = "TRUE" : rdbfalse(k).Font = New Font("Arial", 15)
rdbfalse(k).BackColor = Color.Transparent
frmQuizBuild.Controls.Add(rdbfalse(k))
郑重声明,GroupBox
出现在 RadioButtons
之上,目前实际上没有做任何事情。
如果我的理解是正确的,您可以使用复选框。
如果不是这样 您是否尝试过向单选按钮添加事件处理程序? 所以:
Addhandler.radioButton1_CheckedChanged , AddressOf EventHandler
EventHandler 是您正在使用的子或 class。
这有意义吗?
您的代码需要类似于:
Dim arrRButton(1) As RadioButton
arrRButton(0) = New RadioButton
arrRButton(1) = New RadioButton
Dim GroupBox1 As New GroupBox
With GroupBox1
.Controls.Add(rdbTrue(k))
.Controls.Add(rdbFalse(k))
End With
您也可以使用类似的 With
块来设置位置。 (例如;With arrRButton(0)
然后 .Location = x
、.Text = x
等)