Private Sub MSHFlexGrid_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = vbLeftButton And Shift = vbShiftMask Then MsgBox "click me" End If End Sub 我怎么把所有的选择行加起来,且当没有按住Ctrl应清除其他选择行
to junglerover(灌木丛): 我现在改用listview来实现 Ctrl,Shift,与鼠标配合的多行选择,但代码应该怎么写才能实现那种效果?如能给出些代码不胜感激,高分向送。 就好像是Outlook删除垃圾箱里的信件时,不想全部删除,想指定删除。我该如何编写代码?高手请赐教。
奇怪,我就是想不通,这个问题实现有那么麻烦吗? 只要设置一两个属性就可以用CTRL、SHIFT配合鼠标 进行多行选择了啊。然后不就可以删除?你放一个LISTVIEW和一个BUTTON到FORM上,然后用以下 代码:Private Sub Command1_Click() Dim i As Long For i = ListView1.ListItems.Count To 1 Step -1 If ListView1.ListItems(i).Selected = True Then ListView1.ListItems.Remove i End If Next i End SubPrivate Sub Form_Load() Dim i As Long
For i = 1 To 10 ListView1.ListItems.Add , , "Test" + CStr(i) Next i End Sub这样你不就可以在LISTVIEW里多选几行,然后删除了? 实在很简单啊老兄。
奇怪,我就是想不通,这个问题实现有那么麻烦吗? 只要设置一两个属性就可以用CTRL、SHIFT配合鼠标 进行多行选择了啊。然后不就可以删除?你放一个LISTVIEW和一个BUTTON到FORM上,然后用以下 代码:Private Sub Command1_Click() Dim i As Long For i = ListView1.ListItems.Count To 1 Step -1 If ListView1.ListItems(i).Selected = True Then ListView1.ListItems.Remove i End If Next i End SubPrivate Sub Form_Load() Dim i As Long
因为MSHFLEXGRID不允许隔行选择。如果说访问MSHFLEXGRID的选定区域属性,你用
Row,RowSel,Col,ColSel几个属性就可以了。
选择结尾行数:MSHFlexGrid.RowSel
中间的行全是选择上的用这两个属性就可以像你想像的那样处理了
1、先屏蔽调MSHFlexGrid的大选择、突出显示功能,这样网格就不会选择颜色了。
2、定义一个变量(可以使集合类型)用来保存选择行数。
3、根据MonuseDown事件中,将当前选择的行加到定义集合变量中,并将当前行填上选择颜色。
4、最后要注意的是,当没有按住Ctrl应清除其他选择行的颜色,并清掉刚才定义的集合变量。
5、另外,要配合RowColChange、KeyDown等事件。
If Button = vbLeftButton And Shift = vbShiftMask Then
MsgBox "click me"
End If
End Sub
我怎么把所有的选择行加起来,且当没有按住Ctrl应清除其他选择行
我现在改用listview来实现 Ctrl,Shift,与鼠标配合的多行选择,但代码应该怎么写才能实现那种效果?如能给出些代码不胜感激,高分向送。
就好像是Outlook删除垃圾箱里的信件时,不想全部删除,想指定删除。我该如何编写代码?高手请赐教。
只要设置一两个属性就可以用CTRL、SHIFT配合鼠标
进行多行选择了啊。然后不就可以删除?你放一个LISTVIEW和一个BUTTON到FORM上,然后用以下
代码:Private Sub Command1_Click()
Dim i As Long
For i = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(i).Selected = True Then
ListView1.ListItems.Remove i
End If
Next i
End SubPrivate Sub Form_Load()
Dim i As Long
ListView1.MultiSelect = True
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "Test"
For i = 1 To 10
ListView1.ListItems.Add , , "Test" + CStr(i)
Next i
End Sub这样你不就可以在LISTVIEW里多选几行,然后删除了?
实在很简单啊老兄。
只要设置一两个属性就可以用CTRL、SHIFT配合鼠标
进行多行选择了啊。然后不就可以删除?你放一个LISTVIEW和一个BUTTON到FORM上,然后用以下
代码:Private Sub Command1_Click()
Dim i As Long
For i = ListView1.ListItems.Count To 1 Step -1
If ListView1.ListItems(i).Selected = True Then
ListView1.ListItems.Remove i
End If
Next i
End SubPrivate Sub Form_Load()
Dim i As Long
ListView1.MultiSelect = True
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "Test"
For i = 1 To 10
ListView1.ListItems.Add , , "Test" + CStr(i)
Next i
End Sub这样你不就可以在LISTVIEW里多选几行,然后删除了?
实在很简单啊老兄。
用的是 ListView1.HitTest(x, y),20份虽然不多,但也是心意