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

如何实现点击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

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...