0

我有这个代码

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,0paddingmargin属性定义,我不知道为什么会发生这种情况。

4

2 回答 2

0

在将用户控件添加到面板的控件集合之后,我正在回答我自己的问题,因为我发现了导致Size属性更改的原因。

将用户控件的默认字体更改MS Sans Serif 8.25pt为不同的字体,即Arial Regular 8.25pt在这种情况下解决了我的问题,并且在将用户控件添加到面板的控件集合后大小没有改变。

Visual Studio 2012 中一定存在一些导致此行为发生的错误。

于 2013-07-23T10:39:49.110 回答
0

真正的问题是 AutoScaleMode 属性。默认情况下它设置为Font,这意味着如果窗体的字体大小与控件的字体大小不同,控件将被调整大小。

将 AutoScaleMode 设置为 None,将解决此问题。此外,确保表单和控件具有相同的字体将解决此问题。

于 2016-10-19T10:48:09.620 回答