我正在使用tabcontrol创建第一页与设计器。我正在以编程方式在页面上创建带有控件的新标签页。在每个页面上有几个面板,每个面板有两个单选按钮(一个是,另一个是否)。第一个面板内嵌有一个面板,其可见属性设置为false。如果用户选择是,我想嵌套面板的可见属性设置为true,这将显示更多的单选按钮,他们必须从中做出更多选择。在tabcontrol的标签页上自动设置控件的属性
我的问题是更改任何页面上的嵌套面板的属性,而不是第一页。我可以检测到单选按钮,但我似乎无法找到一种方法来使嵌套面板可见。
Public Class ControlProgram
Dim pageindx as integer
Private Sub btnAddPrgm1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnAddPrgm1.Click
Dim newTab As New TabPage()
pageindx = (TabControl1.TabPages.Count + 1)
newTab.Text = "Step " & pageindx
'define fill panel controls
Dim newpnlFill As New Panel
Dim newlblFill As New Label
Dim newFillY As New RadioButton
AddHandler newFillY.CheckedChanged, AddressOf CheckforCheckedChanged
Dim newFillN As New RadioButton
AddHandler newFillN.CheckedChanged, AddressOf CheckforCheckedChanged
'add fill panel controls
With newTab.Controls
.Add(newpnlFill)
With newpnlFill
.Location = New System.Drawing.Point(6, 6)
.Size = New System.Drawing.Size(171, 137)
.BorderStyle = BorderStyle.FixedSingle
.Controls.Add(newlblFill)
With newlblFill
.Name = "Fill"
.Text = "Fill ?"
.Font = New Font(newlblFill.Font, FontStyle.Bold)
.Location = New Drawing.Point(5, 3)
End With
.Controls.Add(newFillY)
With newFillY
.Name = "FillY"
.Text = "Yes"
.Location = New Drawing.Point(23, 28)
.Size = New System.Drawing.Size(43, 17)
End With
.Controls.Add(newFillN)
With newFillN
.Name = "FillN"
.Text = "No"
.Location = New Drawing.Point(88, 28)
.Size = New System.Drawing.Size(39, 17)
End With
.Controls.Add(newpnlFill2)
With newpnlFill2
.Location = New System.Drawing.Point(2, 60)
.Size = New System.Drawing.Size(164, 68)
.BorderStyle = BorderStyle.FixedSingle
.Visible = False
End With
End With
End With
Private Sub CheckforCheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If TypeOf sender Is RadioButton Then
bEvent = CType(sender, RadioButton).Name
End If
End Sub
末级
因为我已经想出了一个解决方案,我delima,使用您的建议作为出发点。
我添加了几个varribles: 昏暗RB作为控制 昏暗bEvent作为字符串 昏暗booFillY布尔 昏暗booFillN布尔
我还增加了的TabControl TabControl1.TabPages.Add(NEWTAB)
我还做了这些改变:
Private Sub CheckforCheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs)
If TypeOf sender Is RadioButton Then
rb = sender
bEvent = CType(sender, RadioButton).Name
If bEvent = "FillY" Then
Dim newpnlFill2 As Panel = rb.Parent.Controls(3)
newpnlFill2.Visible = True
End If
If bEvent = "FillN" Then
Dim newpnlFill2 As Panel = rb.Parent.Controls(3)
newpnlFill2.Visible = False
End If
End If
End Sub
现在我可以让嵌套面板(newpnlFill2)O可见通过在创建的任何标签页上选择是或否单选按钮来看不到。 感谢您的帮助。我怀疑我会自己得到那里。