如何知道 TabControl 的项目是否是列表框?
How to know if the item of a TabControl is a listbox?
我在想类似的事情:
If TabControl1.Controls.Item(1) = ListBox Then
End If
如果项目是 ListBox 或 Button 或类似的东西,无论如何要知道?
有两种明显的方法可以测试对象的 class。
如果你想知道这个对象是否真的是一个ListBox
,除此之外,你可以这样做:
If myObject.GetType() = GetType(ListBox) Then
如果您想知道对象是 ListBox
还是从 ListBox
继承而来(我经常使用这种形式,因为我在工作中使用的很多控件都被包装了进入专有 class):
If TypeOf myObject Is ListBox Then
两者之间没有“更好的方法”,这取决于你在做什么以及你需要知道什么。
现在,在您的特定情况下,G3nt_M3caj 指出了一些重要的事情:TabControl1.Controls
集合中的所有控件都属于 TabPage
class。您可能想从特定 TabPage
测试一个控件,因此您必须通过您的东西找到它,确保您不会因 nullPointerExceptions 等而造成不稳定。我给了你测试对象的方法,但你仍然必须将这些工具应用于你当前的情况(我没有足够的信息来帮助你)。
我在想类似的事情:
If TabControl1.Controls.Item(1) = ListBox Then
End If
如果项目是 ListBox 或 Button 或类似的东西,无论如何要知道?
有两种明显的方法可以测试对象的 class。
如果你想知道这个对象是否真的是一个ListBox
,除此之外,你可以这样做:
If myObject.GetType() = GetType(ListBox) Then
如果您想知道对象是 ListBox
还是从 ListBox
继承而来(我经常使用这种形式,因为我在工作中使用的很多控件都被包装了进入专有 class):
If TypeOf myObject Is ListBox Then
两者之间没有“更好的方法”,这取决于你在做什么以及你需要知道什么。
现在,在您的特定情况下,G3nt_M3caj 指出了一些重要的事情:TabControl1.Controls
集合中的所有控件都属于 TabPage
class。您可能想从特定 TabPage
测试一个控件,因此您必须通过您的东西找到它,确保您不会因 nullPointerExceptions 等而造成不稳定。我给了你测试对象的方法,但你仍然必须将这些工具应用于你当前的情况(我没有足够的信息来帮助你)。