簡體   English   中英

如何在父窗口(開啟器)中相對於控件的位置顯示模態窗體

[英]How to display a Modal form in a position relative to the a control in the parent window (opener)

好吧,我有一個打開的表單:

ShowDialog(this);

我嘗試使用其Location屬性更改表單的Location ,但我不明白這個位置到底是什么? 我想在某個按鈕下方打開此表單。 那么怎么做呢?

謝謝。

表格將指向相對於屏幕左上角的坐標。 然而,一個表格的控制的位置是相對於所述形式的左上角。

使用Control的Location屬性查找其位置,然后在Form對象上調用PointToScreen將其轉換為屏幕坐標。 然后,您可以相對於該位置定位新表單。

例如:

var locationInForm = myControl.Location;
var locationOnScreen = mainForm.PointToScreen(locationInForm);

using (var model = new ModelForm())
{
    model.Location = new Point(locationOnScreen.X, locationOnScreen.Y + myControl.Height + 3);
    model.ShowDialog();
}

實際上是表單客戶區的左上角。

我更喜歡這個:

myModalForm.Location = New Point(myControl.PointToScreen(Point.Empty).X + myControl.Width, myControl.PointToScreen(Point.Empty).Y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM