c#contextmenustrip使用问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#contextmenustrip使用问题相关的知识,希望对你有一定的参考价值。

当在窗体上右键时,相关联的contextmenu会在窗体上显示,怎样获取鼠标右键的位置
Cursor没有Position这个属性,如果有,请告知怎么用

可以用Control.MousePosition获得当前鼠标的坐标,使用PointToClient计算鼠标相对于某个控件的坐标,如下
Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标
Point formPoint = this.PointToClient(Control.MousePosition);//鼠标相对于窗体左上角的坐标
Point contextMenuPoint = contextMenuStrip1.PointToClient(Control.MousePosition); //鼠标相对于contextMenuStrip1左上角的坐标
参考技术A 在ContextMenu控件的Opening事件中用
Cursor.Position属性获取光标位置。或者处理控件的MouseDown事件。
补充:
Cursor是类,不是属性。完全限定名System.Windows.Forms.Cursor。
窗体也有个属性叫Cursor,注意这可能引起混淆。
如果没有引入命名空间,将光标放在Cursor处,按Ctrl + .(按住控制键的同时按句号键) 会出现一个智能感知菜单(必须先关闭输入法才会出现),然后按回车就会自动引入。

C#文本选中及ContextMenuStrip菜单使用

‘文本框选中显示
‘TextBox1.SelectAll()选择所有文本
1
Private Sub TextBox1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseClick 2 Dim start As Integer = TextBox1.SelectionStart 光标开始位置索引 3 Dim SelectValue As String = TextBox1.SelectedText 选中文本的值 4 Dim length As Integer = TextBox1.SelectedText.Trim.Length 选中文本的长度 5 If length > 0 Then 6 TextBox1.Select(start, length) 选中文本从光标到指定长度 7 End If 8 End Sub
‘选中文本后右键弹出菜单栏
1
Private Sub TextBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown 2 3 If TextBox1.SelectedText.Trim.Length > 0 Then 4 If e.Button = Windows.Forms.MouseButtons.Right Then 5 TextBox1.Enabled = False 6 TextBox1.ContextMenuStrip = ContextMenuStrip1 7 TextBox1.Enabled = True 8 End If 9 End If 10 End Sub

 

以上是关于c#contextmenustrip使用问题的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 ContextMenuStrip 的位置?

C# 系统应用之ListView控件 .添加ContextMenuStrip右键菜单打开删除文件

contextmenustrip 通过二级菜单的点击 怎么获取当前关联控件,是二级菜单,不是一级菜单。

如何将自定义动画添加到 ContextMenuStrip?

DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuStrip)

.ContextMenu 和 .ContextMenuStrip 之间的区别