【发布时间】:2016-03-22 23:01:52
【问题描述】:
我有一个名为 MainAreaTab 的类,它继承自 UserControl。
在另一个用户控件(称为 Page3)中,我有一个包含 TabPages 的 TabControl,并且每个 TabPages 都包含一个 MainAreaTab。这是我执行此操作的代码,它工作正常:
string mainAreaString = mData.GetMainAreaName((UInt32)mainAreaId);
MainAreaTab myUserControl = new MainAreaTab(mData, (uint)mainAreaId);
TabPage mainAreaTabPage = new TabPage(mainAreaString);//Create new tabpage
mainAreaTabPage.Controls.Add(myUserControl);
mTabControl.TabPages.Add(mainAreaTabPage);
正如我所说,这很好。当我想访问每个 TabPage 中每个 MainAreaTab 的公共方法时,问题就来了。我尝试了这样的方法,但它不起作用:
foreach (TabPage tabPage in mTabControl.TabPages)
{
TabControl userControl = (TabControl)tabPage.Controls[0];
MainAreaTab tab = userControl as MainAreaTab;
}
我得到的错误是:
无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型“System.Windows.Forms.TabControl”转换为“MainAreaTab”。
我错过了什么吗?这可以做到吗?提前致谢。
【问题讨论】:
-
在我看来你想要
MainAreaTab tab = (MainAreaTab)tabPage.Controls[0];。试试看是否有帮助。
标签: c#