[C#]DataGridViewLinkColumn Text屬性設定後文字沒顯示

[C#]DataGridViewLinkColumn Text屬性設定後文字沒顯示

今天在寫Winform小程式時,想要在DataGridView中寫一個簡單的刪除功能,我就在我的程式中這樣寫:


tColumn.HeaderText = "刪除";
tColumn.Text = "刪除";
dataGridView1.Columns.Add(tColumn);

string gConnectionString = "server=.;database=Northwind;uid=sa;pwd=";
DataTable tDt = getDataTable(gConnectionString, "Select * from Orders");
dataGridView1.DataSource = tDt;

new一個LinkColumn,設定Header文字跟Cell中要顯示的文字,並放到第一欄,想說這麼簡單的功能,應該單純到不行吧,結果出來的畫面長這樣:

image

Header的文字出來了,但是Cell裡面卻還是空的,後來在程式中加入tColumn.UseColumnTextForLinkValue = true;,這個問題才被解決,程式如下:


tColumn.UseColumnTextForLinkValue = true;
tColumn.HeaderText = "刪除";
tColumn.Text = "刪除";
dataGridView1.Columns.Add(tColumn);

string gConnectionString = "server=.;database=Northwind;uid=sa;pwd=";
DataTable tDt = getDataTable(gConnectionString, "Select * from Orders");
dataGridView1.DataSource = tDt;

image

看了一下MSDN:DataGridViewLinkColumn.UseColumnTextForLinkValue Property的說明:

Gets or sets a value indicating whether the Text property value is displayed as the link text.

 

如果要搭配刪除的功能就很簡單了,在CellClick的事件中加入如下程式碼,這樣就完成囉。


{
    if (dataGridView1.Columns[e.ColumnIndex].GetType() == typeof(DataGridViewLinkColumn))
    {
        //執行刪除
    }
}

游舒帆 (gipi)

探索原力Co-founder,曾任TutorABC協理與鼎新電腦總監,並曾獲選兩屆微軟最有價值專家 ( MVP ),離開職場後創辦探索原力,致力於協助青少年培養面對未來的能力。認為教育與組織育才其實息息相關,都是在為未來儲備能量,2018年起成立為期一年的專題課程《職涯躍升的關鍵24堂課》,為培養台灣未來的領袖而努力。