+ -
当前位置:首页 → 问答吧 → 双击datagrid的一行,显示总跳到第一条记录

双击datagrid的一行,显示总跳到第一条记录

时间:2011-09-15

来源:互联网

先用一个datagrid显示数据,再写另一个模块A,也使用同一个datagrid显示数据。在模块A中,想实现双击datagrid一次,即选择一行记录的功能。但问题是,使用模块A时,每双击datagrid中的一条记录,显示总是跳到datagrid数据表的第一条记录上,为何?如何解决?模块A的代码如下(Text1是用于显示双击所选的记录):
   
Private Sub DataGrid1_DblClick()
   
  Dim cn As New adodb.Connection
  Dim rs As New adodb.Recordset
  cn.CursorLocation = adUseClient
  cn.ConnectionString = "Driver={SQL Server};server=" & ComputerName & ";uid=sa;pwd=1234;database=disc"
  cn.Open
  rs.Open ("select * from disc_name "), cn, adOpenDynamic, adLockOptimistic
  Set DataGrid1.DataSource = rs
   
  Text1.Text = DataGrid1.Columns(0).CellText(DataGrid1.Bookmark)
  'DataGrid1.Refresh ' 这句话要不要?
End Sub

作者: chenfengrabbit   发布时间: 2011-09-15

双击datagrid时,选中行的事件,这样应该可以选中一行数据!

作者: rui_china   发布时间: 2011-09-15

你每次双击,都进行记录集加载,当然,每次都定位到第一条记录上了
按照你的代码看,你可以在Form_Load中加载记录集
Private Sub Form_Load()
   
  Dim cn As New adodb.Connection
  Dim rs As New adodb.Recordset
  cn.CursorLocation = adUseClient
  cn.ConnectionString = "Driver={SQL Server};server=" & ComputerName & ";uid=sa;pwd=1234;database=disc"
  cn.Open
  rs.Open ("select * from disc_name "), cn, adOpenDynamic, adLockOptimistic
  Set DataGrid1.DataSource = rs
   
  ’Text1.Text = DataGrid1.Columns(0).CellText(DataGrid1.Bookmark),移动到RowColCange事件中
  'DataGrid1.Refresh ' 这句话要不要?------没什么必要
End Sub

sub DataGird1_RowCloChange(...)
  Text1.Text =rs(0),
end sub

当你在DataGrid的行间移动光标,记录会自动定位到相应的行上上面,不需要编码

作者: worldy   发布时间: 2011-09-15

热门下载

更多