2010-04-13 57 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); 
     //... 
    } 

这也是强类型。

相关问题