notifyIcon绑定ContextMenuShip怎么在右侧弹出?

SmartWorker 2013-08-29 02:09:58
右键点击的时候是在左侧弹出的,怎么改成在右侧弹出呢?
不好截图,右键点下QQ就明白了.麻烦高手指点下.
...全文
207 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
信丰小飞鱼 2013-08-30
  • 打赏
  • 举报
回复
自己写个事件,不要用notifyIcon的ContextMenuShip属性来绑定ContextMenuShip控件,鼠标点击击时,得到鼠标的坐标,然后再SHow ContextMenuShip控件并指定它的坐标,是左是右你自己算出它的坐标值就可以了
llxzj60 2013-08-30
  • 打赏
  • 举报
回复
英霸啊,换台电脑运行试试?
czz65979674 2013-08-30
  • 打赏
  • 举报
回复
引用 7 楼 u010835229 的回复:
[quote=引用 6 楼 czz65979674 的回复:] 默认的都是在右侧吧 怎么会使左侧呢 实在不行就不绑定了

private void grid_Ini_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (e.RowIndex >= 0)
                {
                    this.menu_PopupMenu1.Show(MousePosition.X, MousePosition.Y);
                }
            }
        }
位置自己设定到自己满意为止
谢谢回复,我写在mousedown事件上怎么弹出位置都在地址栏上边呢?而不是鼠标位置. 小弟愚钝,望指教.[/quote] 说了 你可以自己挑 如果 说 前面 绑定位置就不对了,所以现在直接这样写 位置也一定达不到你的要求的。因为2种写法是一样的。 MousePosition.X, MousePosition.Y 你可以自己加减坐标,达到自己想要的位置。 这个是可以不去考虑 你为什么一开始坐标偏离的方法。 属于比较懒的。 要调查你原来偏离的原因,那就要 你自己慢慢调了。 不过我想 可能是你 坐标相对画面 或者 相对用户 而引起的 误差。 不过上面的那个方法 可以完全无视原因。 就这么做着也就可以了
SmartWorker 2013-08-30
  • 打赏
  • 举报
回复
引用 5 楼 yuan6068132 的回复:
自己写个事件,不要用notifyIcon的ContextMenuShip属性来绑定ContextMenuShip控件,鼠标点击击时,得到鼠标的坐标,然后再SHow ContextMenuShip控件并指定它的坐标,是左是右你自己算出它的坐标值就可以了
用你楼下的方法试了下,弹出位置在地址栏上方,而不是鼠标位置. notifyIcon绑定ContextMenuShip倒是显示在鼠标位置,就是只在左侧弹出.
SmartWorker 2013-08-30
  • 打赏
  • 举报
回复
引用 4 楼 llxzj60 的回复:
英霸啊,换台电脑运行试试?
谢谢.换了还是一样的
SmartWorker 2013-08-30
  • 打赏
  • 举报
回复
引用 6 楼 czz65979674 的回复:
默认的都是在右侧吧 怎么会使左侧呢 实在不行就不绑定了

private void grid_Ini_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (e.RowIndex >= 0)
                {
                    this.menu_PopupMenu1.Show(MousePosition.X, MousePosition.Y);
                }
            }
        }
位置自己设定到自己满意为止
谢谢回复,我写在mousedown事件上怎么弹出位置都在地址栏上边呢?而不是鼠标位置. 小弟愚钝,望指教.
czz65979674 2013-08-30
  • 打赏
  • 举报
回复
默认的都是在右侧吧 怎么会使左侧呢 实在不行就不绑定了

private void grid_Ini_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                if (e.RowIndex >= 0)
                {
                    this.menu_PopupMenu1.Show(MousePosition.X, MousePosition.Y);
                }
            }
        }
位置自己设定到自己满意为止
SmartWorker 2013-08-29
  • 打赏
  • 举报
回复
SmartWorker 2013-08-29
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
左边还是右边是自动的。 如果你的图标足够靠左,右侧大于弹出菜单的宽度,就是右侧弹出的。
我绑定的ContextMenuShip宽度很小,只有一个MenuItem,只有"退出"两字,明显没有QQ和其他程序的宽. 但是我把它从右边移动到最左边,右键点击的时候还是从左侧弹出,
threenewbee 2013-08-29
  • 打赏
  • 举报
回复
左边还是右边是自动的。 如果你的图标足够靠左,右侧大于弹出菜单的宽度,就是右侧弹出的。

110,566

社区成员

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

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

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