我在Visual Basic中使用了这个类:
class Dumbo
Inherits System.Windows.Forms.UserControl
Me.DataSet = New DataSet
Me.BS = new System.Windows.Forms.BindingSource
Sub New()
Me.BS.DataMember = "Table1"
Me.DataSource = Me.DataSet
End Sub
'Other commands here for doing interactions with a SQL database
End Class
在主窗口上使用tabcontrol,我可以在第一个标签页上正常使用此用户控件,以便操作员可以输入数据或查看数据库中的先前记录,但现在我需要将其添加到另一个面板上标签控件
所以这样做:
dim Dumbo1 = new Dumbo 'Usercontrol on the first tab
dim Dumbo2 = new Dumbo 'Usercontrol on the second tab
我知道简单地写Dumbo2 = Dumbo1根本不起作用。我可以尝试将Dataset和Bindingsource设置为彼此,但是不是只有一种更简单的方法来引用该类吗?
编辑:如果您想引用同一个类,我可以使用C ++中的经验,使用类的地址(& foo)。
所以,如果你有这个:
ClassFoo foo = new ClassFoo();
ClassFoo *foo1 = &foo;
因此,我可以使用相同的类字段,属性和方法来读/写数据库。数据必须与ON BOTH TABPAGES
相同我希望在VB.NET中有一个便宜又脏的技巧,我可以引用相同的Usercontrol,所以当用户切换tabpages时,它将是相同的数据,如能够读取相同的数据,和/或写入然后提交更改,它将反映其他页面上的修改。或者类似于ByRef(或C#中的Ref)来引用THAT类。
我希望稍微澄清一下。 : - )
答案 0 :(得分:0)
您的tabcontrol控件可能包含您的New Dumbo变量。每个选项卡都会引用tabcontrol中的变量。
在TabPage中,您将拥有
CType(Me.Parent, CustomTabControl).Dumbo
另一个选项是当TabControl初始化每个选项卡时,它会发出变量。
在TabControl中你会有
someName = New Dumbo
For Each tab As TabPage In Me.TabPages
tab.Tag = someName
Next