listview能否实现这样的功能:
从数据库读数据,放至listview。之后右键单击某条记录,选择有删除、编辑、增加功能。之后弹出新的Form。右键这里怎么做?对listview从没有用过,希望各位大侠能给出例子!谢谢!!!周一就要完成!各位帮忙!
从数据库读数据,放至listview。之后右键单击某条记录,选择有删除、编辑、增加功能。之后弹出新的Form。右键这里怎么做?对listview从没有用过,希望各位大侠能给出例子!谢谢!!!周一就要完成!各位帮忙!
在主窗口的菜单中添加如下菜单项
一级菜单 mnuPop Caption属性设为空 Enable属性设为False
二级菜单 mnuPopAdd Caption属性设为“增加” Enable 及Visible均设为True
mnuPopDelete Caption属性设为“删除” Enable 及Visible均设为True
mnuPopUpdate Caption属性设为“修改” Enable 及Visible均设为True在模块中增加
'用于控制右键菜单
Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Public Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long
Public Declare Function GetSubMenu Lib "user32" (ByVal hWnd As Long, ByVal nPos As Long) As LongPublic Type POINTAPI
X As Long
Y As Long
End Type
'* 模块名称:frmMain
'* 功能描述:系统主窗体
'* 设 计:ajiu
'********************************************************************************
Private mbFlag As Boolean '用户树型控件操作
Private mNode As Node '当前节点
Private mItem As ListItem '当前列表项
'点击右键,就会出现在结点位置出现右键菜单
Private Sub tvwData_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton And mbFlag Then Call DisplayMenu(0, mNode.Key)
End SubPrivate Sub tvwData_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mbFlag = False
End SubPrivate Sub tvwData_NodeClick(ByVal Node As MSComctlLib.Node)
mbFlag = True '给显示右键菜单做标记
If mNode.Key <> Node.Key Then
Set mNode = Node '设置当前结点
mNode.Selected = True
Call TreeViewToListView(mNode)
End If
End Sub
Private Sub DisplayMenu(ByVal Flag As Long, ByVal Key As String)
Dim bFlag As Boolean
Dim Pos As POINTAPI
Dim hMenu As Long
Dim skinForm As skinForm
If Not bFlag Then GoTo ExitHandler
If Flag = 0 Then
mnuPopAdd.Visible = True
mnuPopAdd.Caption = "增加->" & mNode.Text
mnuPopDelete.Visible = False
mnuPopSep.Visible = False
mnuPopUpdate.Visible = False
Else
mnuPopDelete.Visible = True
mnuPopUpdate.Caption = "修改->" & mItem.Text
mnuPopSep.Visible = True
mnuPopUpdate.Visible = True
mnuPopDelete.Caption = "删除->" & mItem.Text
mnuPopAdd.Visible = False
End If
GetCursorPos Pos
hMenu = GetM(Me.hWnd)
hMenu = GetSubMenu(hMenu, 1)
Set skinForm = Skn.GetSkinnedWindow(hWnd)
skinForm.TrackPopupMenu hMenu, Pos.X, Pos.Y
ExitHandler:
End Sub
然后把菜单设为隐藏;在在listview的keydown事件中,控制当按了右键,就弹出相应的菜单!定义如下:PopupMenu mnuPop 'mnuPop为菜单条的名称这样不就可以实现了!
然后把菜单设为隐藏;在在listview的keydown事件中,控制当按了右键,就弹出相应的菜单!
能后再根据当前记录进行操作就OK了