弹出的菜单位置如何确定

zteclx 2010-01-05 08:20:26
在一个winform窗体的图形按钮中,点击鼠标出现弹出式菜单。由于按钮靠近窗体底部,弹出式菜单的一部分隐藏在窗体底部看不见了。有什么办法可以解决这个问题?
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zteclx 2010-01-07
  • 打赏
  • 举报
回复
9楼说的不对
baishi1987 2010-01-06
  • 打赏
  • 举报
回复
if(e.button==2)
{
contxtMenuTrain.Show(System.Windows.Forms.Cursor.Position);
}
这个就可以,Cursor.Position默认是在点击点上方位置
qldsrx 2010-01-06
  • 打赏
  • 举报
回复
试试这段代码,我怎么没有看到有部分菜单给隐藏呢?

private void button1_MouseDown(object sender, MouseEventArgs e)
{
ContextMenuStrip p = new ContextMenuStrip();
p.Items.Add("aaa");
ToolStripMenuItem b = p.Items.Add("bbb") as ToolStripMenuItem;
b.DropDownItems.Add("ccc");
b.DropDownItems.Add("ccc");
b.DropDownItems.Add("ccc");
b.DropDownItems.Add("ccc");
if (e.Button == MouseButtons.Left)
p.Show(button1.PointToScreen(e.Location));
}
zteclx 2010-01-05
  • 打赏
  • 举报
回复
看来不绑定很麻烦。我试了一下绑定的,还不错,只是我只要求左键单击弹出菜单,绑定的能左右开弓,如何屏蔽右键弹出?试了一下判断e.button=left,还是不行。
vip__888 2010-01-05
  • 打赏
  • 举报
回复
没搞过 帮顶
qldsrx 2010-01-05
  • 打赏
  • 举报
回复
不是绑定的话,你就得自己判断当前鼠标位置和屏幕的分辨率,计算弹出菜单的高度,如果高度的像素点超过了鼠标当前位置往下的像素点,就设置在上方弹出。不过可以的话还是用绑定的方法,让系统自己判断位置简单。
spade24 2010-01-05
  • 打赏
  • 举报
回复
contextmenustrip控件应该有相应的属性控制菜单弹出位置
zteclx 2010-01-05
  • 打赏
  • 举报
回复
不是绑定的
qldsrx 2010-01-05
  • 打赏
  • 举报
回复
我想知道你的contextmenustrip是如何弹出的,如果绑定给Control后弹出,就不会出现那种情况,到了窗体底部时,会自动往上弹出,鼠标位置处于弹出菜单的左下角。
zteclx 2010-01-05
  • 打赏
  • 举报
回复
不好意思,不是弹出式菜单。是contextmenustrip的位置不对。

110,566

社区成员

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

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

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