2011-10-06 40 views
0

DataGridView設置爲全行選擇。 需要一種方法DataGridView默認行/單元格選擇問題

我也使用SelectionChanged事件 這DGV有4列

,如果我離開默認的行選擇以清除的DataGridView的默認性質所做的默認選擇行多數民衆贊成,的SelectionChanged火災4倍當它的裝載我不希望它開火。

我已經嘗試使用RowsPostPaint事件清除選擇並不會觸發SelectionChanged事件,但我無法選擇任何行後。

任何想法? 謝謝

+0

目前我的工作是在下面,但有沒有更好的方法? 我存儲int p = 0 然後我運行,如果p!= 3;的p ++; ClearSelection 一旦值達到3,它繼續SelectionChanged方法 – Tsukasa

回答

0

要取消選擇初始行選擇,您可以枚舉SelectedRows並將Selected屬性設置爲false。爲防止在選擇初始行時觸發SelectionChanged事件,請在取消選擇後手動添加事件。

例如,在窗體的Load事件:

 datagridview.DataBindingComplete += new DataGridViewBindingCompleteEventHandler(datagridview_DataBindingComplete); 

和聽衆:

private void datagridview_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) 
    { 
     datagridview.ClearSelection(); 
    } 

foreach(DataGridViewRow row in dataGridView1.SelectedRows) 
    row.Selected = false; 

dataGridView1.SelectionChanged += dataGridView1_SelectionChanged; 
+0

一直試圖以某種方式實現上述,但有問題。 這裏是應用程序的運行: ListView,具有多個選項卡的TabControl。 在幾個選項卡中包含DataGridViews。 從ListView中選擇項目填充選項卡/ DataGridView的所有數據 從ListView中選擇項目時,它將選項卡索引重置爲0,該選項卡不包含dgv。 當填充數據時,我需要清除默認選中的行,因爲我使用的是SelectedChanged,所以始終是第一個填充的行。 – Tsukasa

+0

在ListView中選擇一個新項目並清除dgv,以再次觸發SelectedChanged事件的新數據 並且需要在再次擊中事件之前將其清除。 希望我解釋這一點以及我可以 – Tsukasa

0

使用形式加載這個

不e任何時候改變默認選擇隱藏的數據源。

+0

此外,DataBindingComplete不只是在數據綁定完成時運行,而且只要綁定了*單元格*。所以如果你想做比選擇清理更重要的事情,那麼這件事情如果沒有比無用的更糟糕,那麼它幾乎是無用的。 –

0

填充數據網格後,試試這個。

datagrid.ClearSelection();

相關問題