这是一个微小的VB.Net 2008样本的链接:
http://www.4shared.com/file/255391716/26c45c1e/UserControlTest.html
并且,一个C#样本:
http://www.4shared.com/file/255392906/27f4efbb/UserControlTestCHash.html
道歉,但它是一个免费的主机,所以你必须等待10秒。
首先是复制的步骤,然后我将解释问题所在:
(1)创建一个System.Windows.Forms.UserControl并在右下角添加一个按钮。将按钮锚保留为默认值(左上角)。添加一些点缀的按钮,以便您可以看到它们正确缩放。
(2)将UserControl添加到construtor中的表单,在 InitializeComponent调用之后。
(3)运行表单。
(4)以某种方式增加表单字体大小(例如,单击表单按钮)。
usercontrol中的所有控件都完美缩放,但usercontrol本身没有。它的宽度和高度都增加了太多。查看右下角按钮和用户控件之间的边距。
要解决此问题,必须在之前添加用户控件初始化组件调用。
如果我无法在InitializeComponent之前添加usercontrol,有没有办法让我更正缩放?
答案 0 :(得分:12)
修改:我删除了之前的回答(基本上说“在我的机器上工作正常”)并将其替换为以下内容。
在自定义UserControl
上,设置 AutoScaleMode = Inherit
。这应该纠正用户控件的过度缩放。
答案 1 :(得分:2)
没有复制品,它完美地扩展。如果您设置了UserControl的Font属性并且它与表单的字体大小不匹配,则无法正确缩放。
Font属性是一个“环境”属性,如ForeColor和BackColor。只要将其保留为默认设置(在“属性”窗口中不是粗体),它就会使用父项的字体。当每个控件使用相同的字体大小时,它们都会按比例缩放。
要修复,请在“属性”窗口中选择“字体”属性的文本,按“退格键”将其删除,然后按Enter键。它重置为默认值。
修复你的代码:
this.SuspendLayout();
UserControl1 uc = new UserControl1();
this.Controls.Add(uc);
this.ResumeLayout(false);