如何获取活动工作簿的屏幕位置?

时间:2009-10-24 15:23:03

标签: vsto position

我会将一个表单放在ActiveWorkbook中,如何获取工作簿的屏幕/窗口位置?

2 个答案:

答案 0 :(得分:1)

C#示例..

private void setFormPos(Form frm)
{
   int top = Application.Top + Application.PageSetup.TopMargin + Application.PageSetup.HeaderMargin + Application.Commandbars["Ribbon"].Height;
   int left = Application.Left + Application.PageSetup.LeftMargin;
   frm.Left = (left / 2);
   frm.Top = (top / 2);
}

答案 1 :(得分:0)

没有找到一个好的解决方案,但找到了一个可接受的解决方案:

int top = Application.Top + Application.PageSetup.TopMargin + Application.PageSetup.HeaderMargin + Application.Commandbars["Ribbon"].Height;
int left = Application.Left + Application.PageSetup.LeftMargin;

Form popup = new Form{ Top = top, Left = left, StartPosition = FormStartPosition.Manual, Width=400, Height=300};
popup.Show();