2010-05-11 73 views
0

我正在处理我的项目:[啤酒傍管理系统] [1],一个Windows窗体应用程序。我目前正在尝试为其添加整个锦标赛模式。简而言之,我创建了一个TabControl,第一个标签页包含设置和设置,第二个页面包含括号。Windows窗体中的面板应用程序未清除

每个比赛都有一个特点,一旦决出胜者,就会出现一个黄色的取消按钮来恢复比赛。然而,我的问题是,当我点击按钮时,下一场比赛没有在系列赛中被删除。请看下图:

Image Here(not high enough rep to insert image)

我试图设置对决为空,我试过的Dispose(),close()方法。甚至Parent.Controls.Remove()。 即使在我切换标签应该清除所有,他们仍然坐在那里,当我回来。

我有一种感觉,我可能会失去一个参考或某些东西,因为我甚至无法将新团队推入他们,他们只是坐在那里与他们的按钮。

有没有人有任何提示或知道可能导致此问题的任何已知问题?谢谢。

[1] _http://www.cs.rit.edu/~rmb1201/pages/code.shtml

+0

*非常*不清楚。我甚至无法确定屏幕截图是一个控件还是多个控件。没有看到面板,没有看到选项卡控件。没有看到任何代码。 – 2010-05-11 21:18:12

+0

抱歉让我重申。 当我创建比赛。我为每个支架深度创建一个MatchUps数组(开始,宿舍,半决赛,总决赛)。这些比赛中的每一个都有一个按钮来选择哪支球队获胜。一旦选中,其他团队将被禁用,您点击的按钮将变成黄色后退按钮。一旦连续两支球队完成了这一工作,我会从前两名的获胜者中设定下一个支架深度的对手。应该发生什么,如果我按下后退按钮,下一个支架深度应该处理匹配并将前2个恢复到开始状态。 – rbucinell 2010-05-11 21:41:25

+0

我认为你所要求的,你将不得不张贴一些代码。 – 2010-05-12 13:02:33

回答

1

也许这个片段可以帮助您识别问题:

public string GetControlSummary(Control rootControl, int level) 
    { 
     string result = ""; 
     foreach (Control childControl in rootControl.Controls) 
     { 
      result += new string(' ', level * 4) + childControl.Name + " (" + childControl.GetType().Name + ")\r\n"; 
      result += GetControlSummary(childControl, level + 1); 
     } 
     return result; 
    } 

刚通过你添加控件的tabPage或Panel;它会给你一个你添加的所有控件和子控件的列表。如果控件不在列表中,它们也不应该被绘制。

+0

多么好的工具(一般也是如此)。感谢它。从它看起来像它发送的报告,我正在创建重复控件,这意味着我的代码中有一个流氓'新'的地方。谢谢。 – rbucinell 2010-05-12 13:53:02