在 c# 和 ms 访问中使用 DataGridView 超链接有困难
Posted
技术标签:
【中文标题】在 c# 和 ms 访问中使用 DataGridView 超链接有困难【英文标题】:Having difficulty with DataGridView hyperlink on c# and ms accesss 【发布时间】:2019-10-31 10:16:44 【问题描述】:我在 c# 中有 winform,其中包含显示我的数据库中的表的 datagridview。其中一列是超链接数据类型。但链接似乎无法正确显示。例如http://google.com 在列上显示为#http://google.com#。问题是: 如何从我的超链接列中删除 #? 如何使链接可访问?我的意思是,每当我点击时,链接都会在浏览器中打开。这是pic的示例
【问题讨论】:
数据库中是否有井号字符?他们应该在数据库中吗?也许问题是错误地将英镑放入数据库的代码。 检查您的数据库中链接的存储方式。至于你问题的第二部分,请查看How to handle the click event of DataGridViewLinkColumn,祝你好运。 我查了数据库,链接没问题,没有#号。我猜它的数据类型有问题,因为它是微软访问的超链接。 【参考方案1】:需要单独设置链接栏。
我写了一个工作代码示例,你可以看看。
代码:
private void Form1_Load(object sender, EventArgs e)
DataGridViewLinkColumn col1 = new DataGridViewLinkColumn();
dataGridView1.Columns.Add(col1);
dataGridView1.Columns[0].Name = "Links";
DataGridViewRow dgvr = new DataGridViewRow();
dgvr.CreateCells(dataGridView1);
DataGridViewCell linkCell = new DataGridViewLinkCell();
linkCell.Value = @"http:\\www.google.com";
dgvr.Cells[0] = linkCell;
dataGridView1.Rows.Add(dgvr);
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewLinkColumn && !(e.RowIndex == -1))
Process.Start(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
【讨论】:
感谢您的回答。其实我终于想通了。实际问题出在数据库上,并且已经修复。以上是关于在 c# 和 ms 访问中使用 DataGridView 超链接有困难的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 仅将日期(不包括时间)插入 ms 访问数据库
如何在 C# 中使用 Microsoft.Office.Interop.Excel.Application 保存打开的文档?