仅具有 parentWnd 的父级中的中心表单
Center form in parent only having the parentWnd
我正在使用 Solidworks Pdm Api 并且我正在使用 Windows 表单开发插件以显示有关某些文件的信息。
在 api 文档中,建议使用此 class 将 Pdm window 设置为父级
public class WindowHandle : IWin32Window
{
private IntPtr mHwnd;
public WindowHandle(int hWnd)
{
mHwnd = new IntPtr(hWnd);
}
public IntPtr Handle
{
get { return mHwnd; }
}
}
它运作良好,所以,当我展示我的表格时,我正在做下一个
//i recived hWnd parameter from the api
WindowHandle myHandle = new WindowHandle(hWnd);
var weForm = new myForm();
weForm.StartPosition = FormStartPosition.CenterParent;
weForm.ShowDialog(myHandle);
至此,表格显示没有问题,Pdm Window 实际上是父级,但表格没有居中。
我发现 this question 关于如何在他的父项中居中表单,但显然任何人都可以使用从 IWin32Window
继承的自定义 class。
如何使表格居中?
如果自动居中功能不起作用,那么您需要自己计算一下。
数学基本上意味着你对齐每个window的中心点。
int left = parentBounds.Left + (parentBounds.Width / 2) - (childBounds.Width / 2);
int right = parentBounds.Top + (parentBounds.Height / 2) - (childBounds.Height / 2);
我正在使用 Solidworks Pdm Api 并且我正在使用 Windows 表单开发插件以显示有关某些文件的信息。
在 api 文档中,建议使用此 class 将 Pdm window 设置为父级
public class WindowHandle : IWin32Window
{
private IntPtr mHwnd;
public WindowHandle(int hWnd)
{
mHwnd = new IntPtr(hWnd);
}
public IntPtr Handle
{
get { return mHwnd; }
}
}
它运作良好,所以,当我展示我的表格时,我正在做下一个
//i recived hWnd parameter from the api
WindowHandle myHandle = new WindowHandle(hWnd);
var weForm = new myForm();
weForm.StartPosition = FormStartPosition.CenterParent;
weForm.ShowDialog(myHandle);
至此,表格显示没有问题,Pdm Window 实际上是父级,但表格没有居中。
我发现 this question 关于如何在他的父项中居中表单,但显然任何人都可以使用从 IWin32Window
继承的自定义 class。
如何使表格居中?
如果自动居中功能不起作用,那么您需要自己计算一下。
数学基本上意味着你对齐每个window的中心点。
int left = parentBounds.Left + (parentBounds.Width / 2) - (childBounds.Width / 2);
int right = parentBounds.Top + (parentBounds.Height / 2) - (childBounds.Height / 2);