2014-04-06 32 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

相关问题