2016-06-14 86 views
0

我有一個顯示對象的用戶控件。此用戶控件由以下組成:C#TableLayoutPanel - 不顯示第二行內容

- A main TableLayoutPanel with 2 rows to separate things in two parts 
    - A nested TableLayoutPanel containing a "header" 
     - A label for the name of the object 
     - Several buttons... 
    - A second nested TableLayoutPanel containing the members of the object 
     - Dynamically added user controls... 

所有這些控件,行和列均處於AutoSize模式。

此代表對象的用戶控件是基於JSON文件進行初始化的。孩子(即JSON對象的屬性)被動態添加到第二個嵌套的TableLayoutPanel中。

我不打算提供完整的代碼,因爲這將是太長時間閱讀,但孩子們都加入這樣:

propertiesTableLayoutPanel.Controls.Add(memberView, 0, propertiesTableLayoutPanel.RowCount - 1); 
++propertiesTableLayoutPanel.RowCount; 

基本上我始終保持一個空行。當添加一個孩子時,我把它放入這個空行,然後通過增加行數來創建另一個空行。我這樣做是爲了在添加新行時複製行的樣式,但我不確定這是否真的需要。

我的問題是,由於某些未知的原因,第二個子用戶控件(index = 1)從不顯示。它總是第二個。該行顯示,但它似乎是空的。第一個(索引= 0)和下面的(索引> 2)顯示正確。

我已經確認通過調試和記錄所有的孩子的用戶控件被正確放置在第二個嵌套的TableLayoutPanel中,並且他們的Visible屬性設置爲true,但它似乎不夠。

我錯過了什麼樣式或任何東西?謝謝。

編輯:可能必須對RowStyles做些什麼,可能是行高。似乎只有一行時,已經有兩種行樣式,這很奇怪。

編輯:似乎總是在使用AutoSize模式時不使用行高。

+0

看到我的這似乎解決了這個問題的其他問題:http://stackoverflow.com/questions/37808238/c-sharp-tablelayoutpanel-2nd-row-content-not-displayed然而,我不知道這是正確的解決方案,所以我只是把這個作爲評論。 – Virus721

回答

0

修復這裏:stackoverflow.com/questions/37808238/ 是由於設計師留下的垃圾。一個額外的RowStyle不應該在那裏,並且可以安全地手動刪除。