Я нашел лучший способ добиться этого.
Сначала при создании набора DataGridViewLinkColumn
UseColumnTextForLinkValue = false
Установите для свойства Text
DataGridViewLinkColumn
полный полный путь файла, который находится глубоко в сетевом хранилище.
Теперь обработайте CellFormatting
событие DataGridView
и установите для свойства Value
ячейки отображаемое имя ссылки
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
}
}
Чтобы выполнить какое-либо действие при нажатии на ссылку, вам нужно обработать CellContentClick
событие DataGridView
следующим образом
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
}
}