vb.net 如何让datagridview添加图片列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net 如何让datagridview添加图片列相关的知识,希望对你有一定的参考价值。

先把需要添加图片的列样式改为 DataGridViewLabelXColumn
Dim bcx As DataGridViewLabelXColumn = TryCast(DataGridViewX1.Columns("列名"), DataGridViewLabelXColumn)
bcx.Image = ImageList1.Images("图片名")
会在文字前面填上你的图片
参考技术A DataGridView1.CurrentRow.Cells(11) = New DataGridViewCheckBoxCell 用这个DataGridBoolColumn用这个指定一列为复选框 参考技术B DataGridView控件显示图片文件的注意事项
来源: 发布时间:2010-03-23 浏览: 704 人次 字体:[大 中 小]
DataGridView控件中显示图片及其注意事项,windows Forms编程里面有一个DataGridView控件,它不光是可以显示数据,可以显示按钮,复选框,甚至还可以显示图片。这些图片可以来自于数据库(用二进制的方式存储的),也可以来自文件系统。下面是一个例子
【假设你有一个Winform程序,并且窗体上有一个DataGridView控件,这个控件只有一个列(名称为Image),类型为DataGridViewImageColumn】

public Form1()

InitializeComponent();
GetData();



private void GetData()

foreach (string s in Directory.GetFiles(@"E:\My Documents\图片收藏\表情","*.gif"))

this.demoGrid.Rows.Add(s);//注意,虽然字段类型是Image,但我们这里只给它传一个图片路径过去,真正读取图片是由下面的事件处理程序做的



/// <summary>
/// 这个事件就在尝试对单元格进行格式化的时候触发。在这里设置真正的图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void demoGrid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)

if (demoGrid.Columns[e.ColumnIndex].Name.Equals("Image"))

string path = e.Value.ToString();
e.Value = GetImage(path);



public System.Drawing.Image GetImage(string path)

return System.Drawing.Image.FromFile(path);


以上的代码确实可以实现我们的目的,就是从一个目录中把所有的gif图片读取出来,然后显示在DataGridView上面。

在 vb.net 的 datagridview 中添加行号

【中文标题】在 vb.net 的 datagridview 中添加行号【英文标题】:Add row number in datagridview in vb.net 【发布时间】:2012-12-23 04:41:54 【问题描述】:

我正在 Vb.Net 中开发 Windows 应用程序。现在有一种表格,我想在其中打印网格中显示的记录。通过单击网格中的单元格标题可以对网格进行排序,并且应该按照网格中的显示进行打印。

所以我对如何维护网格中的行号有点困惑。当网格填充和分配数据源时,我最初可以从数据库中获取行号。但是当用户单击任何单元格标题并对该列进行排序时,行号就会更改。那个时候我很难保持行号。

谁能告诉我如何在网格中维护行号?

提前致谢。

【问题讨论】:

你使用什么样的数据库? 您不想更改排序的顺序..? @M.NourBerro 我们使用的是 SQL Server 2008。 @VishalSuthar no 当我从网格打印记录时,它应该在排序或不排序后打印与网格中的显示相同。 【参考方案1】:

我猜你需要这个:

注意:此代码是 C#,因此您可以将其转换为 VB.Net

代表:

this.dgvUserDetails.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dgvUserDetails_RowPostPaint);

事件:

private void dgvUserDetails_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)

        using (SolidBrush b = new SolidBrush(dgvUserDetails.RowHeadersDefaultCellStyle.ForeColor))
        
              e.Graphics.DrawString((e.RowIndex + 1).ToString(), e.InheritedRowStyle.Font, b, e.RowBounds.Location.X + 10, e.RowBounds.Location.Y + 4);
        

输出

【讨论】:

!很不错?如何将 RowHeader Backcolor 更改为您当前拥有的。? @kashif 或者您可以借助以下方法:_dataGridView.ColumnHeadersDefaultCellStyle.BackColor = Color.Blue; _dataGridView.EnableHeadersVisualStyles = false; 感谢您向我介绍了这么好的视觉样式。我从您提到的网站安装它并使用 office2010 皮肤更改了我的项目样式。现在我的应用程序看起来比以前的应用程序好很多倍。几天后,它开始向我要执照。你能告诉我你是从哪里下载的破解版吗??我下载了 v2.4.50000.1 版本,并没有从谷歌找到任何免费的密钥。它值 250 美元等于 25000 卢比,我什至想不到。如果您能以任何方式解决我的注册问题,我会非常高兴 您可以从这个网站将代码从 C# 转换为 VB.NET:converter.telerik.com【参考方案2】:

grid.Rows(e.RowIndex).HeaderCell.Value = CStr(e.RowIndex + 1)

复制代码 enter image description here

【讨论】:

我们并不期望每个答案都是完美的,但拼写、标点和语法正确的答案更容易阅读。他们也往往更频繁地获得投票。请记住,您随时可以返回并编辑您的答案以改进它

以上是关于vb.net 如何让datagridview添加图片列的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET中DataGridView谁帮忙?

在 vb.net 的 datagridview 中添加行号

vb.net datagridview 无法添加行

求vb.net高手,如何设置datagridview的行标题,比如行标题设置成“第一行”“第二行”“第三行”

vb.net datagridview中的列的操作

vb.net怎么将datagridview的数据写入数据库