如何知道 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 等而造成不稳定。我给了你测试对象的方法,但你仍然必须将这些工具应用于你当前的情况(我没有足够的信息来帮助你)。