2010-05-11 24 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