如何在Excel vsto应用程序中放置弹出窗口

时间:2019-03-07 09:21:24

标签: c# winforms vsto

对此我有很多研究,但无论如何我还是失败了。 我正在使用Excel VSTO加载项,其中有一个弹出表单。此弹出表单的类型为Form。只要单击按钮,它就会打开。问题是我无法将其定位在单击的按钮正下方。

已经尝试过:

  • 获取按钮Location属性并将其设置为表单的 位置。但是,当我设置表格的位置时,它被认为是 桌面位置。

  • 光标位置。它的工作效果更好。但是我的按钮在屏幕的边缘,所以当用户单击 按钮,因为它离开了台式机,所以几乎看不到它 可见性

1 个答案:

答案 0 :(得分:0)

发布问题后,我就得到了答案。我正在发布我的答案,因为它可能会帮助其他人

我通过以下方式找到了按钮相对于屏幕的位置:

var location = button.Parent.PointToScreen(button.Location);

并通过以下方式为其指定了弹出表单的位置

this.DocumentOptions = new HeaderDocumentOptions
        {
            Visible = true,
            StartPosition = FormStartPosition.Manual,
            Location = new Point(location.X - 130 + btnDocumentOptions.Width, location.Y + btnDocumentOptions.Height)
        };

注意:为了满足我的需要,我在X上减去了一些值并添加了