2014-02-05 162 views
0

我有用C#編寫的Winform。在Winform DataGridView中創建響應超鏈接鏈接

具體來說,我有一個DataGridView控制,看起來像這樣:

No.|Description | Quantity| file     | 
1 |Beaker  | 2 |c:\PDF\Beaker.pdf  | 
2 |Conical Flask | 21 |c:\PDF\Conical Flask.pdf | 

我想文件列包含超鏈接或一個按鈕,點擊後打開用戶計算機上的PDF文件。

在此先感謝!

回答

0

如果我理解你的問題,你想使用的是一個DataGridViewLinkColumn。

然後,只需處理DataGridView.CellContentClicked事件。

在處理程序中,你可以訪問該單元格的內容,像這樣:

乾杯

+0

首先我要感謝您的回覆... 而不是打開消息框,我想打開所需的文件,這是一個由用戶贊成的程序的pdf文件 – user3180149

+0

您尚未指定問題的哪一部分你特別需要幫助,所以我只假定鏈接列部分。我更新了我的示例代碼以滿足您的需求。 –

+0

這就是我正在尋找的,當點擊鏈接打開文件的用戶喜歡的程序。 我不能感謝你,你已經節省了我花了兩天的時間和精力尋找這個解決方案非常感謝你 – user3180149

0

如前所述,您需要使用DataGridViewLinkColumn,然後處理DataGridView「 s CellContentClick事件。

這裏是你將如何實現這一目標:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    if (this.dataGridView1.Columns[e.ColumnIndex] is DataGridViewLinkColumn) 
    { 
     Process.Start(this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString()); 
    } 
} 

編輯

您註冊事件是很重要的。否則,事件處理程序代碼將永遠不會觸發。

this.dataGridView1.CellContentClick += 
     new System.Windows.Forms.DataGridViewCellEventHandler(
     this.dataGridView1_CellContentClick); 

如果由於某種原因一個按鈕是爲你一個較好的選擇,那麼你就需要利用DataGridViewButtonColumn的以類似的方式。

+0

非常感謝你 – user3180149