datagrid控件+adodc控件+Access在datagrid控件中显示表中相应字段的数据,使用控件的click和dbclick事件,当单击和双击控件的相应记录时,在文本框中显示相应数据。问题,第一次单击datagrid中单元格时,文本框中显示的是第一条记录的数据,第二次单击同一行记录时,文本框才显示当前记录。这种如何解决

解决方案 »

  1.   


    Dim intColIndex As Integer
    Dim intRowIndex As IntegerPrivate Sub datagrid_Click()dgdmain.Row = intRowIndex
    Text2.Text = CStr(dgdmain.Columns(intColIndex).Value)End SubPrivate Sub datagrid_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    intColIndex = datagrid.ColContaining(X)
    intRowIndex = datagrid.RowContaining(Y)
    End Sub
      

  2.   

    dgdmain.Row = intRowIndex
    改为
    datagrid.Row = intRowIndex
      

  3.   

    晕,把所有的dgdmain改为datagrid
      

  4.   

    谢谢,不过我还是有一个问题,你的方法可以显示对应格子的数据,可问题是datagrid是和数据库连接的,我需要对应的记录,这个怎么写代码呢?难道在你这个基础上用select对数据库再搜一遍,那太费时间了!!
      

  5.   

    我再说明白一些吧,由于datagrid控件是和adodc相连接的,当第一次单击datagrid控件的单元格时
    DataGrid.Fields("姓名").Value得到的是第一条记录的,当再单击一次刚才的单元格或同行的任一个单元格时,DataGrid.Fields("姓名").Value才为当前记录。
    在datagrid控件中,每条记录前不是都有一个小空格,鼠标放在上面会变成箭头。如果单击这个小空格
    DataGrid.Fields("姓名").Value会显示当前值。现在我希望通过程序,我可以使得单击控件中单元格的效果能和单击记录前面那个小空格的效果一样!
      

  6.   

    怎么没有人回答呢?
    上面的DataGrid.Fields("姓名").Value中的DataGrid是针对Grid控件设置的记录集
      

  7.   

    让DataGrid控件和Text控件同时绑定到ado上