2009-09-10 62 views
1

我有一個綁定到自定義集合的datagrid視圖。 我添加刪除選項在UI中將添加和刪除datagridview中的一行。有什麼辦法可以在datagridview中新增行嗎?

有什麼辦法可以在datagridview中獲取新增的行嗎?

+0

您是否想知道如何將編輯行添加到DGV中,或者您想知道如何獲取對新添加的行的引用? – BFree 2009-09-10 13:19:49

+0

我想知道如何獲得對新添加的行的引用。假設我的UI帶有數據網格中的一些現有行,並且用戶現在添加了2個新行,我只想獲得這兩行的引用。我不想迭代數據網格視圖中的所有行 – 2009-09-10 13:23:04

回答

3

DataGridView有一個RowAdded事件,每次添加Row(duh!)時都會觸發它。事件參數的類型爲:

public Form1() 
    { 
     InitializeComponent(); 
     this.dataGridView1.RowsAdded += new DataGridViewRowsAddedEventHandler(dataGridView1_RowsAdded); 
    } 

    private void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     DataGridViewRow newRow = this.dataGridView1.Rows[e.RowIndex]; 
    } 
+0

請參閱https://stackoverflow.com/a/3846937/1271037 – dovid 2017-06-29 05:42:01

1

RowPrePaint事件能夠最好地獲得新添加的行:其上有一個RowIndex屬性,使您能夠做這樣的事情DataGridViewRowsAddedEventArgs。我正在使用databound datagridview。

private void dataGridView1_RowPrePaint(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     DataGridViewRow newRow = this.dataGridView1.Rows[e.RowIndex]; 
    } 

RowsAdded事件對我無效。我假設,DataGridView不會一次添加一行或有其他問題。 RowsAdded中的e.RowIndex始終返回0或1.

+0

P.S.剛剛意識到我很尷尬 - 遲到回答這個問題;-)希望我的帖子可以幫助別人。 – dushyantp 2012-04-12 09:26:07

+0

RowPrePaint事件也適用於我。 RowsAdded事件的問題在於,當我們設置DataGridView的DataSource時,它會同時插入一個範圍,並且不會爲每一行調用RowsAdded事件。但是RowPrePaint會針對將要繪製的每一行進行調用。很好! – 2013-02-08 18:22:46

相關問題