我有这段代码
ShadedRoundedRectangle rect = new ShadedRoundedRectangle();
rect.Location = new Point( 0, nextY );
rect.Size = new Size( 200, 20 );
rect.NewText = String.Format( "{0} x {1} ({2} kcals)", ci.Amount, ci.Product.ItemName, ci.Amount * ci.Product.Calories );
panel1.Controls.Add( rect );
ShadedRoundedRectangle
是一个用户控件,可以看到大小为200,20
的阴影圆角矩形。将rect
添加到面板控件集合时,大小会更改为233, 23
。
用户控件已为0,0,0,0
和padding
属性定义了margin
,但我仍然坚持为什么会发生这种情况。
答案 0 :(得分:0)
我正在回答我自己的问题,因为在将用户控件添加到面板的控件集合后,我发现导致Size
属性发生变化的原因。
将用户控件的默认字体MS Sans Serif 8.25pt
更改为其他字体,即Arial Regular 8.25pt
在这种情况下解决了我的问题,并且在将用户控件添加到面板的控件集合后,大小没有改变
Visual Studio 2012中必定存在导致此行为发生的错误。
答案 1 :(得分:0)
真正的问题是AutoScaleMode属性。默认情况下,它设置为Font,这意味着如果表单的字体大小与控件的字体大小不同,控件将调整大小。
将AutoScaleMode设置为None,将解决此问题。 此外,确保窗体和控件具有相同的字体将解决此问题。