作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
好吧,我有一个我打开的表单:
ShowDialog(this);
我尝试使用其 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();
}
† 实际上是表单客户区的左上角。
关于c# - 如何在父窗口中相对于a控件的位置显示Modal窗体(opener),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3540135/
我是一名优秀的程序员,十分优秀!