2010-04-13 33 views
0

我點擊double dataGridView的任何一行。沒有得到數據點擊行數據:DataGridView selectedRow屬性沒有獲得數據,如果我雙擊行?


    private void gwStudies_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
     { 
      GoruntuyuAc(); 
     } 

private void GoruntuyuAc() 
     { 
      olduid = ""; 
      DataRowView ro = (gwStudies.SelectedRows[0].DataBoundItem as DataRowView); 
      string uid = ""; 
      uid = ro["StudyInstanceUid"].ToString(); 
      string tarih = ""; 
      DateTime t1 = Convert.ToDateTime(ro["StudyDate"]); 
      //........ 
      //............ 
     }

上(gwStudies.SelectedRows [0]作爲.DataBoundItem DataRowView的)錯誤數據;
圖片:alt text http://i42.tinypic.com/n6utt2.png

回答

0

我不太確定,但我認爲選擇發生在雙擊事件後。

+0

我該如何解決它? – programmerist 2010-04-13 10:00:18

+0

@programmerist:使用'SelectionChanged'事件。 – leppie 2010-04-13 10:04:22

1

這裏你必須傳遞GoruntuyuAc(int row,int col)函數中的行索引和列索引。 像GoruntuyuAc(e.RowIndex,e.ColumnIndex);

0

您可以訂閱SelectionChanged事件或嘗試這樣的事:

private void gwStudies_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
     { 
      olduid = ""; 
      DataRowView ro = (gwStudies.Rows[e.RowIndex].DataBoundItem as DataRowView); 
      string uid = ""; 
      uid = ro["StudyInstanceUid"].ToString(); 
      string tarih = ""; 
      DateTime t1 = Convert.ToDateTime(ro["StudyDate"]); 
      //........ 
      //............ 
     } 
0

只給你一個最佳實踐,爲了確保對點擊的DataGridView,你應該投發件人如下

void transactionsGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
    { 
     DataGridView senderDataGrid = (DataGridView)sender; 
     YourBoundModelClass row = 
      (senderDataGrid.Rows[e.RowIndex].DataBoundItem as YourBoundModelClass); 
     //... 
    } 

這也是強類型。

相關問題