【发布时间】:2015-06-03 15:50:41
【问题描述】:
需要帮助查找在运行时添加到 winform 的选项卡控件的 TableLayoutPanel。请在下面找到示例代码。任何帮助将不胜感激。
private void GenerateControls()
{
TableLayoutPanel tp = new TableLayoutPanel();
tp.Name = "tpName";
tab1.Controls.Add(tp);
}
private void findTablePanelControl()
{
TableLayoutPanel tp = (TableLayoutPanel)this.Controls.Find("tpName", true)[0];
string name = tp.Name;
}
我收到以下错误消息:索引超出了数组的范围。
我也尝试了以下代码,但在“字符串名称=”行上出现此错误(对象引用未设置为对象的实例):
TableLayoutPanel tpParseSchema = (TableLayoutPanel)this.Controls.Find("tpParseSchema", true).FirstOrDefault();
【问题讨论】:
-
我发现了问题。提供示例代码实际工作。我的真实代码的问题是我错误地为面板输入了错误的名称值。我最终通过递归遍历选项卡控件的所有子控件来解决这个问题。这是我如何做到这一点的示例代码。
标签: findcontrol tablelayoutpanel