2012-08-27 47 views
2

ALL,獲取所選行中的DataGridView

我有我的WinForms與選擇屬性爲「全行」,沒有多選應用程序中的DataGridView控件。我還附加了SelectionChanged委託給它,我需要獲取當前選定的行。

private void order_SelectionChanged(object sender, EventArgs e) 
    { 
     ordersItemIndex = order.SelectedRows[0].Index; 
    } 

問題是,在程序啓動時,應該有根本沒有選擇,只是後來的用戶可以更改與鼠標或鍵盤的選擇。所以在我的Form_Load()事件中,我有這樣的:

order.ClearSelection(); 

但是,此代碼路徑上拋出該方案的啓動異常。

有沒有一個很好的辦法告訴節目「我們正在加載的形式,不叫委託」,沒有任何額外的變量?

謝謝。

回答

4

你可以(在InitializeComponents()不)後您添加order_SelectionChanged明確的選擇在Form_Load()

不過還好檢查您的處理程序是沒有任何選擇行。

private void order_SelectionChanged(object sender, EventArgs e) 
{ 
    if (order.SelectedRows.Count > 0) 
     ordersItemIndex = order.SelectedRows[0].Index; 
}