2014-04-06 55 views
1

我正在構建一個簡單的應用程序來獲得.net庫的一些練習。基本上,我想用不同顏色的單元填充表單。這個偉大的工程(我有它的十六進制值的列表ColourSwatches):TableLayoutPanel中的單元格上的工具提示

private void AddListToTable() 
{ 
    TableLayoutPanel tlp = new TableLayoutPanel(); 
    tlp.CellBorderStyle = TableLayoutPanelCellBorderStyle.Inset; 
    tlp.RowCount = 5; 
    tlp.GrowStyle = TableLayoutPanelGrowStyle.AddColumns; 
    tlp.Padding = new Padding(1, 1, 4, 5); 
    tlp.AutoSize = true; 

    foreach (String colour in ColourSwatches) 
    { 
     Panel panel = new Panel(); 
     panel.BackColor = System.Drawing.ColorTranslator.FromHtml("#" + colour); 
     panel.Size = new Size(100, 100);    
     tlp.Controls.Add(panel); 
    } 

    Form.Controls.Add(tlp); 
} 

我想補充的是懸停在該面板並獲得十六進制值在工具提示窗口中顯示的能力。

實現此目的最簡單的方法是什麼?

如果我沒有爲我的所有面板使用相同的名稱,我想我可以使用它,但我想不出另一種方法。

任何想法?

謝謝!

回答

1

據我所知該面板對象沒有開箱即用的工具提示屬性。有很多插件可以用來幫助您,例如JQueryUI,Ajax工具包。

或者,TableRow和TableCell類具有工具提示屬性,因此您可以使用表創建顏色樣本。

foreach (String colour in ColourSwatches) 
{ 
    TableRow Row = new TableRow(); 
    Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#" + colour); 
    Row.ToolTip = "mycolor"; 
    table.rows.Add(row); 
} 

在aspx頁面創建一個表:

<asp:Table runat="server" id="colortable"></asp:table> 

然後在代碼中排座椅後面添加到錶行的集合,如:

TableRow newrow = new TableRow(); 
colortable.Rows.Add(newrow); 

細胞可以被添加到該行細胞集合如:

TableCell newcell = new TableCell(); 
newrow.Cells.Add(newcell); 

該錯誤表明您正在綁定直接將TableCell添加到頁面控件集合中。 TableCell需要添加到TableRow中。 TableRow添加到表中。希望這可以幫助。

+0

謝謝 - 這看起來很整潔,但現在我遇到了類型問題 - 「無法將Web.UI.WebControls.TableCell添加到Windows.Forms.Control'或者使用Table:'無法從System轉換。 Web.UI> WebControls.Table到System.Windows.Forms.Control'你知道解決這個問題的簡單方法嗎? – Ekins86

+0

看到我編輯的答案。 – Chris

相關問題