2010年10月30日 星期六

DataGridView 的連結顯示以及連結網址設定

近用到 windows form 內的 DataGridView 控制項,裡面有一欄位型態 DataGridViewLinkColumn,用來連結或處理資料之用,但是用的時候,設定欄位 Text 為「連結網址」,執行後,卻無字樣。例如以下所示:
程式碼:
private void Form1_Load(object sender, EventArgs e)
{
((DataGridViewLinkColumn)dataGridView1.Columns["gvRGoogleLink"]).Text = "連結網頁";
dataGridView1.Rows.Add("C語言", "");
dataGridView1.Rows.Add("程式設計筆記", "");
}
執行後截圖:上圖所示,在 Google Link 欄位並無連結字樣。但是加上
((DataGridViewLinkColumn)dataGridView1.Columns["gvRGoogleLink"]).UseColumnTextForLinkValue = true;
這行程式碼,即可將連結字樣顯示。
加入此行程式碼執行後截圖:連結字樣就會出現了,接下來就是設定連結的事件。
而連結事件所要利用到 CellClick 事件,當點擊某一欄位時,觸發 CellClick 事件,將此行 Keywoed 轉換編碼導向 Google 搜尋頁面。
程式碼如下:
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
/* 確認欄位型態 */
if (dataGridView1.Columns[e.ColumnIndex] is DataGridViewLinkColumn)
{
/* 確認欄位名稱 */
switch (dataGridView1.Columns[e.ColumnIndex].Name)
{
case "gvRGoogleLink": /* 觸發事件 */
string keyword = Convert.ToString(dataGridView1.Rows[e.RowIndex].Cells["gvRKeyword"].Value);
string encKeyword = encKeyword = System.Web.HttpUtility.UrlEncode(keyword);

string url = string.Format("http://www.google.com.tw/search?q={0}", encKeyword);
System.Diagnostics.Process.Start(url);
break;
}
}
}


回目錄
回首頁

沒有留言 :

張貼留言

Related Posts Plugin for WordPress, Blogger...