加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

点击 VB 中 DataGrid 行 触发事件 弹出窗口 并传递 所点击行参数

发布时间:2020-12-17 08:09:17 所属栏目:百科 来源:网络整理
导读:如何实现点击VB中DataGrid行,触发事件弹出窗口,并传递所点击行参数: 通过双击事件来实现的: PrivateSubDataGrid1_DblClick() Dimfrm1AsNewfrmNew ''定义一个窗体对象frm1,frmNew是程序中的一个窗体 DimActiveRowAsInteger OnErrorGoToErrHandle ActiveRow

如何实现点击VB中DataGrid行,触发事件弹出窗口,并传递所点击行参数:

通过双击事件来实现的:
PrivateSubDataGrid1_DblClick()
Dimfrm1AsNewfrmNew ''定义一个窗体对象frm1,frmNew是程序中的一个窗体
DimActiveRowAsInteger
OnErrorGoToErrHandle

ActiveRow=DataGrid1.Row'取得当前行号

IfDataGrid1.Row>=0Then
frm1.flgAddNew=False '设置打开窗体的模式为浏览(或是修改,反正不是新增)
frm1.inId=DataGrid1.Columns(0).Value '将当前行的第1列(记录的ID)传递给窗体
frm1.Show1
EndIf
'更新窗体数据(如果在打开窗体中修改了数据,就需要重新刷新DataGrid1的当前行数据)
CallDataView(ActiveRow)
ExitSub
ErrHandle:
MsgBox"错误提示:"&Err.Description
EndSub

DataView函数的功能就是加载数据到你的DataGrid里面,并将当前行指向你所要的行(在修改或删除记录时)。可以参考以下代码:
PrivateSubDataView(OptionalActiveRowAsInteger=0)
OnErrorGoToErrHandle

SetRs=NewADODB.Recordset
Rs.Open"Select*FromTestorderbyId",ConnDB,adOpenStatic,adLockOptimistic
SetDataGrid1.DataSource=Rs
IfActiveRow<Rs.RecordCountAndActiveRow>0Then
DataGrid1.Row=ActiveRow
EndIf
ExitSub
ErrHandle:
MsgBox"错误提示:"&Err.Description
EndSub

记录明细窗体frmNew中定义了两个变量:
PublicflgAddNewAsBoolean
PublicinIdAsString
其中flgAddNew是控制窗体到底是以新增记录模式还是查看模式去显示(文本框、按钮等都有变动);

inId则是告诉该窗体如果是要查看记录的话,记录的ID是多少。
所以在查看某条记录时,需要这么写:
frm1.flgAddNew=False frm1.inId=DataGrid1.Columns(0).Value

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读