十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
需要设置一个右键菜单单击的类,然后用集合把所有菜单事件组合起来。百度一下VB6,MyApp.CommandBars("Cell").Controls.Add(MsoControlType.msoControlButton, Before:=1),基本代码都有了
成都创新互联专注于企业全网整合营销推广、网站重做改版、周宁网站定制设计、自适应品牌网站建设、html5、商城网站定制开发、集团公司官网建设、外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为周宁等各大城市提供网站开发制作服务。
这个简单,我以前用VB6就写过一个类似的程序。 不过这个程序需要提供命令行参数哟。
就算用VB.NET编写,也必须要有接收这个命令行参数的,不然无法实现显示文件或文件夹路径。
下面是注册表文件的内容,你也可以用程序来写入注册表。
*表示所有文件,你可以随便修改。
最后面的%1,表示当前文件或文件夹
REGEDIT4
[HKEY_CLASSES_ROOT\*\shell\显示名称]
[HKEY_CLASSES_ROOT\*\shell\显示名称\command]
@="D:\\绿色软件\\编程\\VB\\显示名称\\显示名称.exe %1"
这回没分不写代码,哈哈......
利用listbox的MouseDown事件获取当前是哪个鼠标按键点击了控件;
通过MouseEventArgs事件类的Location属性获取鼠标在listbox中的坐标;
通过listbox的行高来计算鼠标在listbox的哪一行;
通过listbox的SelectedIndex属性来选定鼠标所在的那一行。
PS:算了,好人做到底吧!
Private Sub ListBox1_MouseDown(sender As Object, e As MouseEventArgs) _
Handles ListBox1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim ht As Integer = ListBox1.ItemHeight
Dim rect As New Rectangle _
(0, 0, ListBox1.ClientSize.Width, ht)
For i As Integer = 0 To ListBox1.Items.Count - 1
If rect.Contains(e.Location) Then
ListBox1.SelectedIndex = i
Exit For
Else
rect.Y += ht
End If
Next
End If
End Sub
上面的回答不完美,在窗口的任意地方右击都会弹出窗口,所以要力求完美,必须先判断红框的坐标,在红框范围内再弹出窗口 If e.Button = Windows.Forms.MouseButtons.Right Then If e.X 153 And e.X 601 And e.Y 1 And e.Y 25 Then '红框的坐标范围,在这个范围内右击有效(获取的技巧见下面) Form2.ShowDialog() End If End If 小技巧: 如何获取你限定的红色框的范围? 用mousemove事件和一个label控件做测试: Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove Label1.Text = e.X "=" e.Y End Sub 记录下坐标即可!