我创建了一个自定义 UserControl,然后创建了另一个控件,它是这个 Usercontrol 的子类,但它后面仍然有自己的设计器文件(基本控件仅用于一些基本功能......我不需要“设计”上面的任何东西,实际上它的高度设置为0)。
一切都在运行时按预期工作,但在设计时,似乎每当我在设计模式下打开子控件来处理它时,Visual Studio 会不断增加我的宽度,一次可能增加几百像素(或可能是某些因素)。在我知道之前,这个东西是 10,000 多像素宽,然后我必须在设计器中重新设置宽度,以便它易于管理。这在运行时不是问题,因为控件的宽度由它所在的父容器设置,并且控件锚定到父容器。只是在设计控件时很痛苦。这里只是一些小片段,可以更好地解释我所做的事情:
public partial class BaseRow : UserControl
{
public BaseRow()
{
InitializeComponent();
...
}
}
然后我想实际创建从这个 BaseRow 继承的控件,但我可以在设计器中进行编辑。所以,我去添加 - > UserControl。然后在类代码中,我将默认创建的代码更改为从我的 BaseRow (继承自 UserControl)继承,所以它看起来像这样:
// changed the inheritance below from UserControl to BaseRow (which inherits from UserControl)
public partial class UnitRow : BaseRow
{
public UnitRow()
{
InitializeComponent();
}
}
我最初在设计器的基类和子类中都将对象的宽度设置为 400。基 Row 在其构造函数中设置其 Anchor 属性:
this.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
因为这些控件都将进入一个子类面板控件,该控件将控制添加到其中的行的宽度。
运行时一切正常。我创建的这些“行”控件的实际宽度设置正确,并根据其父子类面板控件进行适当更改。但是当我在设计时以设计模式打开行控件时,宽度不断变长。每次宽度等于或大于 10,000 时,我都会在“属性”窗口中手动将其更改回 400 的宽度。
它不会引起任何重大问题。但这是一种真正的痛苦。有人有什么建议吗?