如何在工具条按钮位置打开表单

Posted

技术标签:

【中文标题】如何在工具条按钮位置打开表单【英文标题】:How to open form at toolstrip button position 【发布时间】:2014-01-10 19:07:34 【问题描述】:

我有带有一些按钮的工具条菜单,菜单位于工具条容器中。我想要完成的是在特定的工具条按钮位置打开新表单......这是我的代码。除非我将工具条菜单移动到工具条容器的底部或右侧...

private System.Windows.Forms.ToolStripButton rbRunMacro;
private System.Windows.Forms.ToolStrip tsMacroRecorder;

        private void rbRunMacro_Click(object sender, EventArgs e)
    
        Rectangle rect = this.rbRunMacro.Bounds;
        Point location = PointToScreen ( new Point(this.tsMacroRecorder.Location.X + rect.X, this.tsMacroRecorder.Location.Y + rect.Y));
        MacroListForm form = new MacroListForm();
        form.StartPosition = FormStartPosition.Manual;
        form.Location = location ;
        form.Show();
    

【问题讨论】:

【参考方案1】:

您应该获得rbRunMacro 相对于整个屏幕的位置(请参阅link)。

form.Location = this.tsMacroRecorder.PointToScreen(rbRunMacro.Bounds.Location);

我们使用ToolStrip.PointToScreen 的原因是ToolStripButton 不提供PointToScreen 方法。因此,我们必须使用ToolStripButton.Location 来获取rbRunMacro 相对于其父控件的位置(参见link)。

【讨论】:

谢谢你的作品 - 除了你必须参考工具条,因为工具条按钮不接受 PointToScreen 方法。

以上是关于如何在工具条按钮位置打开表单的主要内容,如果未能解决你的问题,请参考以下文章

如何将滚动条从工具箱附加到面板,使其相对于表单/面板展开?

第二十一讲 经典动态图表实现原理

工具或自定义键盘的位置在哪?

word2019朗读工具介绍

jquery获取滚动条高度和位置

如何在替代单击c#上打开和关闭工具条菜单下拉菜单