昨天刚遇到这个问题。你是不是用到UserControl自定义控件了。我使用的自定义控件,出现了你说的情况:解决方法是,删除 .resx 、designer.cs 这2个文件。修改public partial class FormAttributeSetting 为 public class FormAttributeSetting。删除partial 修饰符。这样的话,就不会加载资源了,就不会出现如上问题。或者重新设计你的UseControl控件,出现如上问题很大程度上是加载资源导致的。将container.Controls.Add(ctrl);放在ctrl.Location = new System.Drawing.Point(100, 143);之前如果你的窗体有padding 或者用了layout引擎,都会修改坐标的因为窗体边框的宽度由主题确定的,所以将控件添加到窗体上,必然有一定的偏差。也有可能是容器的设置把控件位置更改了。我也遇到这个问题。原来的 ctrl.Location是根据窗体的位置来定位,但是加了Controls.Add后,就根据你现在写的container的大小位置来定位了。好坑爹啊!