Public Sub ButtonVisibilityOnTab()
Select Case ctl.Parent.Name
Case "tabGeneral"
ctl.btnAdd.Visible = True
Case "tabSecond"
ctl.btnAdd.Visible = False
Case "tabThird"
ctl.btnAdd.Visible = False
Case Else
ctl.btnAdd.Visible = False
End Select
End Sub
如何优化/重构上述代码。
我有一个带有3个标签的应用,并且它们之间有一个共同的用户控件。我想为添加按钮启用可见性我只有第一个选项卡。
如何优化代码,以便将来如果重用用户控件可以避免另一种情况。
我应该使用制表符控件名称传递bool值来完成该操作。 或者控件数组是否合乎逻辑,作为方法的值传递。
答案 0 :(得分:1)
在编写代码时,可以将其简化为
Public Sub ButtonVisibilityOnTab()
ctl.btnAdd.Visible = (ctl.Parent.Name.ToLower().Equals("tabgeneral"))
End Sub
或者更一般地说,
Public Sub ButtonVisibilityOnTab(CompareTo as String)
ctl.btnAdd.Visible = (ctl.Parent.Name.ToLower().Equals(CompareTo.ToLower()))
End Sub
答案 1 :(得分:0)
这对我有用,我开始将控件名称作为参数传递。
Private Sub ButtonVisibilityOnTab(controlName As String, blnShowOrNot As Boolean)
If _ctl.Parent.Name = controlName Then
_ctl.btnAdd.Visible = blnShowOrNot
Else
_ctl.btnAdd.Visible = Not (blnShowOrNot)
End If
End Sub
答案 2 :(得分:0)
如果你有很多这样的陈述,你可以创建一个设置类。
Class Settings
Public Property CanAdd As Boolean
End Class
此类将位于每个选项卡内,每个选项卡将设置自己的值。然后,您的按钮可见性功能将查看当前选项卡设置。
Public Sub ButtonVisibilityOnTab()
ctl.btnAdd.Visible = ctl.Parent.Setting.CanAdd
End Sub
然后,您可以在所有选项卡上实现处理设置的界面。那么你的功能就像。
Public Sub ButtonVisibilityOnTab()
ctl.btnAdd.Visible = CType(ctl.Parent, ISomeInterface).Setting.CanAdd
End Sub