2011-06-10 97 views

回答

0

我endded了做是堆疊在另一個之上一個DataGridView。我關閉了邊框,網格線和滾動條。然後創建動態按鈕列,以便將主數據網格視圖與只有一行按鈕進行匹配。然後我使用ColumnWidthChanged事件處理程序將兩個DataGridView一起調整大小。無論如何,這是我現在的解決方法。

0

見所以這個類似的帖子,可能有助於

adding control to gridview

萬一贏的形式,檢查這個MSDN發佈

Column Types in the Windows Forms DataGridView Control

或本規範項目後......雖然它舉例添加圖像按鈕

DataGridView Image Button Cell

@tmax在這種情況下,你或許可以把您的按鈕創建代碼在GridView_RowCreated事件像下面

void GridView_RowCreated(Object sender, GridViewRowEventArgs e) 
    { 
    if(e.Row.RowType == DataControlRowType.Header) 
     { 
      //Button creation code here   
     } 
    } 
+0

我忘了提及我正在使用Windows應用程序 – TroyS 2011-06-10 17:58:50

+0

從我在鏈接中看到的內容中可以看到整個列都具有相同的類型。我想將buttun添加到頂部行。 – TroyS 2011-06-11 20:35:26

0
private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    Button btn = new Button(); 
    //btn attributes 
    dataGridView1.Rows[0].Cells[3].Value = new Button(); 
} 

嘗試這樣的事情。

+0

off course,... Cells [x] ...你知道列的編號。 – 2011-06-13 12:55:05

+0

對不起,那也沒用。單元格中的結果是「System.Windows.Forms.Button,Text:」。我很肯定你必須將整個列設置爲Button DataType。我希望有一個替代方案,但無濟於事。 – TroyS 2011-06-14 13:32:58

+0

你是對的,它不是這樣工作的。如果您沒有太大的應用程序,請嘗試將其移植到WPF。抱歉。 – 2011-06-14 20:28:51

1

我想艾德里安的答案很接近。嘗試這樣的事情。

if ((string)table.Rows[0].Cells[0].Value == "I should be a button") { 
    // you can add formatting or values to the button before assigning it here 
    table.Rows[0].cells[0] = new DataGridViewButtonCell(); 
} 
0

我認爲最好的答案,如果在這裏找到: Hide gridview button。您只需在需要按鈕的位置添加DataGridViewButtonCell,然後在其中添加DataGridViewTextBoxCell。該列必須是DataGridViewButton類型。

相關問題