我發現了一個更好的方法來實現這一點。
首先,在創建DataGridViewLinkColumn
設置UseColumnTextForLinkValue = false
設置DataGridViewLinkColumn
的Text
屬性將完整路徑被深埋在網絡存儲器中的文件的。
現在,處理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
}
}
祝賀修復!如果可以,請確保將答案標記爲「已接受」,以便其他人會看到您的問題已得到解答,並能夠從您的解決方案中學習。乾杯〜 – 2012-03-30 16:16:00
@John:你有沒有找到其他辦法來實現這個目標? – 2017-12-11 18:04:03