contextMenuStrip的位置问题。

journeydj 2008-04-10 10:02:12
准备对MenuStrip的每一个ToolStripMenuItem都做一个右键菜单,
ToolStripMenuItem本身没有ContextMenuStrip属性。
所以只能通过contextMenuStrip1.Show(Control.MousePosition);的方式弹出,
但是MenuStrip的位置始终在右上角。
不知道为什么。
通过跟踪断点Control.MousePosition的x,y的值都是正确的。
而且无论设置contextMenuStrip1的top和left为什么值,它的值还是为零。。。
求解答。
...全文
566 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
journeydj 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 GentleCat 的回复:]
在没有事先将contextMenuStrip1绑定到一个控件上时,通过先将contextMenuStrip1.Visiable设为ture再设置显示位置才不会飞到屏幕左上角,如果先设置contextMenuStrip1的显示位置再Visiable=True的话就会飞了,我是这样做的
[/Quote]
在我这如果不设置OwnerItem的话,Visiable等于什么都不会飞....
GentleCat 2008-04-10
  • 打赏
  • 举报
回复
在没有事先将contextMenuStrip1绑定到一个控件上时,通过先将contextMenuStrip1.Visiable设为ture再设置显示位置才不会飞到屏幕左上角,如果先设置contextMenuStrip1的显示位置再Visiable=True的话就会飞了,我是这样做的
journeydj 2008-04-10
  • 打赏
  • 举报
回复
下午再结贴。
journeydj 2008-04-10
  • 打赏
  • 举报
回复
问题解决了 ,因为设置了
contextMenuStrip1.OwnerItem为一个ToolStripMenuItem。
因为contextMenuStrip1只有一个,所以想通过设定OwnerItem来区别。。
没想到阿。。。。这是为什么呢??????
现在改成用全局变量来弄了。OK拉。呵呵。
但就是想不明白设定OwnerItem和位置有什么关系。最关键的是设的OwnerItem还是form里的控件。
journeydj 2008-04-10
  • 打赏
  • 举报
回复
其实用lable代替也不是不可以。。不过为什么设定contextMenuStrip1.Show(Control.MousePosition);
或设置left和top都不好用呢?
journeydj 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sjm2003 的回复:]
如果不需要菜单本身的功能,而只是要名字,那不如用LABEL好了!
[/Quote]
需要用菜单本身的快捷键功能。
journeydj 2008-04-10
  • 打赏
  • 举报
回复
.....设计要求的,我也不想。谁让咱只是coding,coding,coding。
sjm2003 2008-04-10
  • 打赏
  • 举报
回复
如果不需要菜单本身的功能,而只是要名字,那不如用LABEL好了!
sjm2003 2008-04-10
  • 打赏
  • 举报
回复
为什么要给菜单设置右键菜单啊
sjm2003 2008-04-10
  • 打赏
  • 举报
回复
1
第18章 Visual C++ 2010 CLR Windows 第18章 窗口编程 671 18.1 创建Windows应用程序 671 18.2 类层次结构 677 18.3 Control类 677 18.3.1 大小与位置 678 18.3.2 外观 679 18.3.3 用户交互操作 679 18.3.4 Windows功能 680 18.4 标准Windows控件使用指南 681 18.4.1 Button控件 681 18.4.2 CheckBox控件 681 18.4.3 RadioButton控件 682 18.4.4 ComboBox控件、ListBox控件 18.4.4 和CheckedListBox控件 682 18.4.5 DateTimePicker控件 684 18.4.6 ErrorProvider组件 685 18.4.7 HelpProvider组件 686 18.4.8 ImageList组件 686 18.4.9 Label控件 686 18.4.10 ListView控件 687 18.4.11 PictureBox控件 688 18.4.12 ProgressBar控件 689 18.4.13 TextBox控件、RichTextBox 18.4.13 控件与MaskedTextBox 18.4.13 控件 689 18.4.14 Panel控件 690 18.4.15 FlowLayoutPanel控件和 18.4.13 TableLayoutPanel控件 690 18.4.16 SplitContainer控件 691 18.4.17 TabControl控件和TabPage 18.4.13 控件 691 18.4.18 ToolStrip控件 692 18.4.19 MenuStrip控件 694 18.4.20 ContextMenuStrip控件 694 18.4.21 ToolStripMenuItem控件 694 18.4.22 ToolStripManager类 695 18.4.23 ToolStripContainer控件 695 18.5 窗体WinForm 695 18.5.1 Form类 695 18.5.2 多文档界面 700 18.5.3 定制控件 700 18.6 小结 707 第19章 Visual C++ 2010 MFC与.NET 第19章 交互编程 708 19.1 编写托管扩展应用程序 708 19.2 编写访问.NET的MFC程序 709 19.3 混合模式编程问题 711 19.4 运用.NET类型 713 19.4.1 定义和使用托管类型 713 19.4.2 将非托管对象作为托管类的 19.4.2 成员 715 19.4.3 装箱和拆箱 716 19.4.4 指针 717 19.4.5 在非托管代码中使用托管 19.4.2 数组 719 19.5 小结 720 第四部分 发布Visual C++ 2010程序 第20章 Visual C++ 2010应用程序 第20章 部署 721 20.1 Windows Installer介绍 722 20.2 一个简单的Windows应用 20.2 程序 723 20.3 使用安装向导快速创建安 20.3 装包 726 20.4 手动创建安装程序 728 20.5 使用安装编辑器 731 20.5.1 File System(文件系统 20.5.1 编辑器) 731 20.5.2 Registry编辑器 732 20.5.3 File Types编辑器 733 20.5.4 User Interface编辑器 734 20.5.5 Custom Actions编辑器 735 20.5.6 Launch Conditions编辑器 736 20.6 小结 736 第五部分 基于Windows 7 平台用Visual C++ 2010开发 第21章 Visual C++ 2010基于 第21章 Windows 7新特性开发 737 21.1 实现C++兼容开发 737 21.1.1 实现UAC数据重定向 737 21.1.2 实现高DPI 741 21.1.3 实现安装程序检测 742 21.1.4 会话0隔离 743 21.1.5 用户界面特权隔离 21.1.5 (UIPI) 746 21.1.6 版本检查 748 21.2 Windows 7系统专题 750 21.2.1 实现超级任务栏 750 21.2.2 实现Shell库 759 21.2.3 实现后台服务 762 21.2.4 开发基于Windows 7的 21.1.5 设备与性能应用 763 21.3 开发基于Windows 7的 21.3 新特性 769 21.3.1 实现多点触摸 769 21.3.2 实现获取传感器与位置 771 21.3.3 实现Windows 7 Ribbon 21.1.5 界面开发 774 21.3.4 基于Visual C++ 2010开发 21.1.5 基于Windows 7的语音识别与 21.1.5 语音合成 776 21.3.5 基于Visual C++ 2010与 21.1.5 Windows SDK for Windows 7 21.1.5 开发Windows 7平台的 21.1.5 Tablet PC应用 787 21.3.6 开发Windows 7的安全体验 21.1.5 CryptoAPI加密 804

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧