当前位置:编程学习 > C#/ASP.NET >>

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

右键点击的时候是在左侧弹出的,怎么改成在右侧弹出呢?
不好截图,右键点下QQ就明白了.麻烦高手指点下. notifyIcon ContextMenuShip 右键 --------------------编程问答-------------------- 左边还是右边是自动的。

如果你的图标足够靠左,右侧大于弹出菜单的宽度,就是右侧弹出的。 --------------------编程问答--------------------
引用 1 楼 caozhy 的回复:
左边还是右边是自动的。

如果你的图标足够靠左,右侧大于弹出菜单的宽度,就是右侧弹出的。

我绑定的ContextMenuShip宽度很小,只有一个MenuItem,只有"退出"两字,明显没有QQ和其他程序的宽.
但是我把它从右边移动到最左边,右键点击的时候还是从左侧弹出, --------------------编程问答-------------------- --------------------编程问答-------------------- 英霸啊,换台电脑运行试试? --------------------编程问答-------------------- 自己写个事件,不要用notifyIcon的ContextMenuShip属性来绑定ContextMenuShip控件,鼠标点击击时,得到鼠标的坐标,然后再SHow ContextMenuShip控件并指定它的坐标,是左是右你自己算出它的坐标值就可以了 --------------------编程问答-------------------- 默认的都是在右侧吧 怎么会使左侧呢 实在不行就不绑定了

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);
                }
            }
        }
 位置自己设定到自己满意为止 --------------------编程问答--------------------
引用 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事件上怎么弹出位置都在地址栏上边呢?而不是鼠标位置.
小弟愚钝,望指教. --------------------编程问答--------------------
引用 4 楼 llxzj60 的回复:
英霸啊,换台电脑运行试试?

谢谢.换了还是一样的 --------------------编程问答--------------------
引用 5 楼 yuan6068132 的回复:
自己写个事件,不要用notifyIcon的ContextMenuShip属性来绑定ContextMenuShip控件,鼠标点击击时,得到鼠标的坐标,然后再SHow ContextMenuShip控件并指定它的坐标,是左是右你自己算出它的坐标值就可以了

用你楼下的方法试了下,弹出位置在地址栏上方,而不是鼠标位置.
notifyIcon绑定ContextMenuShip倒是显示在鼠标位置,就是只在左侧弹出. --------------------编程问答--------------------
引用 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事件上怎么弹出位置都在地址栏上边呢?而不是鼠标位置.
小弟愚钝,望指教.

说了 你可以自己挑 如果 说 前面 绑定位置就不对了,所以现在直接这样写 位置也一定达不到你的要求的。因为2种写法是一样的。  MousePosition.X, MousePosition.Y 你可以自己加减坐标,达到自己想要的位置。 这个是可以不去考虑 你为什么一开始坐标偏离的方法。
属于比较懒的。 要调查你原来偏离的原因,那就要 你自己慢慢调了。
不过我想 可能是你 坐标相对画面 或者 相对用户 而引起的 误差。 不过上面的那个方法 可以完全无视原因。 就这么做着也就可以了
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,