首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在StatusBar项目的位置显示ContextMenuStrip

在StatusBar项目的位置显示ContextMenuStrip
EN

Stack Overflow用户
提问于 2009-07-23 02:45:28
回答 4查看 4.3K关注 0票数 0

我想在StatusStrip中的ToolStripStatusLabel所在位置显示一个ContextMenuStrip。普通控件有PointToScreen / PointToClient /等,但由于ToolStripStatusLabel是从组件派生的,所以没有。

任何帮助都将不胜感激。

EN

回答 4

Stack Overflow用户

发布于 2011-08-18 17:18:00

一个非常,非常晚的答案,只是因为我碰巧遇到了同样的问题,并在谷歌上搜索了这个问题。到目前为止,我发现的最好的解决方案为答案增加了一个很好的转折。这就是它:

代码语言:javascript
复制
    void toolStripItem_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            var label = (ToolStripItem)sender;
            this.contextMenuStrip1.Show(this.mainStatusStrip, label.Bounds.X + e.X, label.Bounds.Y + e.Y);
        } 
    }

将鼠标相对于控件的坐标(e.X,e.Y)添加到边界坐标,使菜单显示在正确的位置。省略此选项将显示ToolStripItem左上角的菜单。记录在案。

票数 3
EN

Stack Overflow用户

发布于 2009-07-23 03:20:11

你就不能这样做吗:

代码语言:javascript
复制
int x = label.Bounds.Location.X + statusStrip.Location.X;
int y = label.Bounds.Location.Y + statusStrip.Location.Y;
menu.Show(this, x, y);
票数 0
EN

Stack Overflow用户

发布于 2009-07-23 03:33:59

查看ToolStripStatusLabel的Bounds属性。像这样使用它来做你需要做的事情:

代码语言:javascript
复制
contextMenuStrip1.Show(statusStrip1, toolStripStatusLabel2.Bounds.X, toolStripStatusLabel2.Bounds.Y);            
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1169323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档