Private Sub TabControl1_ControlAdded(sender As Object, e As ControlEventArgs) Handles TabControl1.ControlAdded
Debug.WriteLine("Something added: " & e.Control.Name & " " & e.Control.GetType().ToString)
If TypeOf e.Control Is TabPage Then
Dim tp As TabPage = CType(e.Control, TabPage)
tp.UseVisualStyleBackColor = False
End If
End Sub
Public Class TabBasedMultipage : Inherits TabControl
Protected Overrides Sub OnControlAdded(e As ControlEventArgs)
MyBase.OnControlAdded(e)
Dim tabPage As TabPage = TryCast(e.Control, TabPage)
If tabPage IsNot Nothing Then
tabPage.UseVisualStyleBackColor = False
End If
End Sub
End Class
3条答案
按热度按时间tpxzln5u1#
您可以行程
ControlAdded
事件,并测试已加入的控件,然后进行适当的行程:uqzxnwby2#
为了方便其他人,我分享我最终实现的东西。
感谢@joehanna的创意和@Reza Aghaei的干净代码。所以我的解决方案是基于他们的贡献:
qvtsj1bj3#
继承TabControl并重写OnControlAdded方法。
这样,如果您使用代码或设计器添加TabPage,则将应用您设置
在这种情况下,继承比事件处理效果更好,因为不需要在项目中每个窗体上都处理ControlAdded事件