请问c#窗体编程中怎么在datagridview 中的一行中的一个单元格类显示图标+文本的组合 20
就像电驴或迅雷里的列表那样,文件名前跟着一个图标,是在一个单元格内的,根据文件动态添加图标,请给出完整的代码.下面的回答不对题啊,我问的WINFORM,刚刚自己解决掉了,...
就像电驴或迅雷里的列表那样,文件名前跟着一个图标,是在一个单元格内的,根据文件动态添加图标,请给出完整的代码.
下面的回答不对题啊,我问的WINFORM,刚刚自己解决掉了,改的MSDN的例子
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e){
//前提是有一个叫ContactName的列,名字也可以自己改
if (this.dataGridView1.Columns["ContactName"].Index ==
e.ColumnIndex && e.RowIndex >= 0)
{Rectangle newRect = new Rectangle (e.CellBounds .X ,e.CellBounds.Y ,16,16);
//新建一个图标
System.Drawing.Icon ico = new Icon("E:\\cab.ico");
using (
Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
backColorBrush = new SolidBrush(e.CellStyle.BackColor))
{
using (Pen gridLinePen = new Pen(gridBrush))
{
// Erase the cell.
e.Graphics.FillRectangle(backColorBrush, e.CellBounds);
//画图标
e.Graphics.DrawIcon(ico, newRect);
//画字符串
e.Graphics.DrawString("123",e.CellStyle.Font,Brushes.Crimson, e.CellBounds.X + 16,e.CellBounds.Y, StringFormat.GenericDefault);
e.Handled = true;
}
}
}
} 展开
下面的回答不对题啊,我问的WINFORM,刚刚自己解决掉了,改的MSDN的例子
private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e){
//前提是有一个叫ContactName的列,名字也可以自己改
if (this.dataGridView1.Columns["ContactName"].Index ==
e.ColumnIndex && e.RowIndex >= 0)
{Rectangle newRect = new Rectangle (e.CellBounds .X ,e.CellBounds.Y ,16,16);
//新建一个图标
System.Drawing.Icon ico = new Icon("E:\\cab.ico");
using (
Brush gridBrush = new SolidBrush(this.dataGridView1.GridColor),
backColorBrush = new SolidBrush(e.CellStyle.BackColor))
{
using (Pen gridLinePen = new Pen(gridBrush))
{
// Erase the cell.
e.Graphics.FillRectangle(backColorBrush, e.CellBounds);
//画图标
e.Graphics.DrawIcon(ico, newRect);
//画字符串
e.Graphics.DrawString("123",e.CellStyle.Font,Brushes.Crimson, e.CellBounds.X + 16,e.CellBounds.Y, StringFormat.GenericDefault);
e.Handled = true;
}
}
}
} 展开
1个回答
展开全部
完整代码就不给了,给你思路吧.
将你要换的单元格换成模版列.
在CS文件中写一个自定义函数.返回HTML格式.
函数内容大致为
private string getout(string filename,string filetype)
{
string strfiletype
switch (filetype)
{
case : "jpg"
strfiletype = "***.gif";
break;
default:
strfiletype = "XXX.gif";
}
return "<img src =""+strfiletype +"" > "+filename;
}
这样就返回如:<img src="ie.gif"> 文件名称
然后前台就调用:<%= getout(DataBinder.Eval(Container.Item,"filename"),DataBinder.Eval(Container.Item,"filetype"))%>
将你要换的单元格换成模版列.
在CS文件中写一个自定义函数.返回HTML格式.
函数内容大致为
private string getout(string filename,string filetype)
{
string strfiletype
switch (filetype)
{
case : "jpg"
strfiletype = "***.gif";
break;
default:
strfiletype = "XXX.gif";
}
return "<img src =""+strfiletype +"" > "+filename;
}
这样就返回如:<img src="ie.gif"> 文件名称
然后前台就调用:<%= getout(DataBinder.Eval(Container.Item,"filename"),DataBinder.Eval(Container.Item,"filetype"))%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询