我构建了一个 Winforms 表格布局,每个单元格中有许多元素。我要做的是枚举我关心的特定类型的所有控件,并删除它们相应的 Click 值。这是在运行时完成的,这就是为什么我不只是设置控件的初始属性。
我尝试过使用 Control.ControlCollection 属性,尽管我运气不佳,因为它不是 IEnumerable。替代方案我有以下代码,但问题是在控件中永远找不到控件,并且抛出空引用异常,因为我试图设置.Click一个空对象,但这个对象肯定应该存在!帮助!?
for (int row = 1; row < tblLayoutPanel.RowCount; row++)
{
for (int column = 0; column < tblLayoutPanel.ColumnCount; column++)
{
Type controlType = tblLayoutPanel.GetControlFromPosition(column, row).GetType();
if (controlType == typeof(CTLLabel) ||
controlType == typeof(OutputLabel))
{
Controls[tblLayoutPanel.GetControlFromPosition(column, row).Name].Click += null;
// Control is never found! *why?*
}
}
}