所以基本上我要做的是将PictureBox控件放在具有指定大小的空窗口上,假设窗体的大小实际上总是大于我的控件的大小。但是,无论何时我都是试图使它居中(我的意思是实际上距离窗体边缘的距离相等,宽度的距离相等,高度的距离相等,因为我的代码中的高度和宽度不相等.Ex:width = 700和高度= 500),在表单底部和控件底部之间,空间比表单顶部和控件顶部之间的空间小。
这是一张说明问题的图片: https://i.stack.imgur.com/URozj.png
以下是整个代码,请不要批评其背后的原因,我想知道为什么表单会调整大小或将我的控件放在底部,如果我将其添加到表单中。
wsadmin>AdminApp.list("WebSphere:cell=myCell,node=myNode,server=server1")
以上是我初始化我正在使用的所有内容的代码,并且还有一个函数来返回对象应该相对于它的父对象的位置。下面是我调用初始化的代码表单构造函数中的函数和中心函数。
public static class Engine
{
public static Graphics G;
public static Bitmap Map;
public static PictureBox Canvas;
public static void Initialize_mystuff(int width, int height)
{
Map = new Bitmap(width, height);
G = Graphics.FromImage(Map);
Canvas = new PictureBox();
Canvas.Size = new Size(Map.Width, Map.Height);
Canvas.BorderStyle = BorderStyle.FixedSingle;
Canvas.BackgroundImage = Map;
}
public static Point CenterUControl(Size Parent, Size Child)
{
return new Point(Parent.Width / 2 - Child.Width / 2, Parent.Height / 2 - Child.Height / 2);
}
}
表单的AutoSize属性也设置为false。
答案 0 :(得分:0)
表单的大小包括表单的边框和非客户区域(标题栏等)。使用表单的维度时,请使用ClientSize属性:
Engine.Canvas.Location = Engine.CenterUControl(this.ClientSize, Engine.Canvas.Size);