首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改DataGridViewLinkColumn的显示值

更改DataGridViewLinkColumn的显示值
EN

Stack Overflow用户
提问于 2012-03-29 21:04:55
回答 2查看 2K关注 0票数 1

我有一个datagridview,它的datagridviewlinkcolumn绑定到我的对象列表中的一个文本链接。文本链接是指向文件的链接,文件被深埋在网络存储中,形成了长链接。有没有什么方法可以更改linkcolumn的链接显示值,使其只显示每个完整链接的一部分?只是文件名本身吗?

我已经了解到,您可以使用相同的标题文本作为链接列的显示值,但我想知道是否所有的显示值都可以不同。

总而言之,有没有可能在link列中显示文件链接的一部分,而我想要显示的所有部分都是不同的,并且仍然具有指向完整文件路径的实际链接?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-30 22:49:23

我想通了。

我不确定是否有更好的方法来做到这一点,但是我在我的对象中添加了链接的缩短版本,并且在我的dataGridView1_CellContentClick事件中,我获得了与行(dataGridView1.Rows[e.RowIndex].DataBoundItem)相关联的对象,并在返回的对象中的完全限定文件路径上调用System.Diagnostics.Process.Start()

票数 0
EN

Stack Overflow用户

发布于 2017-12-12 19:25:00

我找到了一种更好的方法来实现这一点。

首先,在创建DataGridViewLinkColumn集合UseColumnTextForLinkValue = false

DataGridViewLinkColumnText属性设置为深埋在网络存储中的文件的完整路径。

现在,处理DataGridViewCellFormatting事件并将单元格的Value属性设置为链接的显示名称

代码语言:javascript
复制
private void dataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
    {

        if (excelDataGridView.Columns[e.ColumnIndex].Name.Equals("Links"))
        {
             if(e.Value != null)
                e.Value = Path.GetFileName(e.Value.ToString()); //change the display name for Hyperlink
        }
    }

要在单击链接时执行任何操作,您需要按如下方式处理DataGridViewCellContentClick事件

代码语言:javascript
复制
    private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if(e.ColumnIndex == excelDataGridView.Columns["Links"].Index) //Handling of HyperLink Click
        {
            string cellValue = excelDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
            Process.Start(cellValue); //assumes the link points to the text file and opens it in the default text editor
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9925944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档