0

我认为这是一个奇怪的问题。我有一个使用窗体设计器创建的屏幕(Windows 窗体)。我现在想根据某些或其他标准以编程方式更改其中一个控件的宽度,即在运行时。

我的问题是我似乎无法做到这一点。我的方法是在表单类 InitializeComponent() 方法执行后(比如在表单构造函数的末尾)为 Width 属性分配一个新值。手表显示控件属性已更改,但随后显示的屏幕会忽略新值并使用在 InitializeComponent() 中分配的值。

我在尝试做一些不可能的事情吗?后台是否有一些巫术阻止了设计师创建的控件,或者我只是走错了路?

4

4 回答 4

1

检查Control.AutoSizeControl.Anchor属性。特别:

Control.Anchor:获取或设置控件绑定到的容器的边缘,并确定控件如何与其父级一起调整大小。

于 2012-11-08T10:37:40.777 回答
0

如果控件是一个Label确保该Autosize属性设置为 false,否则 .NET 将调整控件的大小以适应内容。

于 2012-11-08T10:33:32.437 回答
0

你试过Invalidate方法吗?

于 2012-11-08T10:47:38.810 回答
0

您是否尝试过处理表单加载和查看时的事件?类似于: this.Loaded += MyLoadedEventHandler; 在 MyLoadEventHandler 方法中调整宽度。– 戴维奥 2 小时前

那成功了。

于 2012-11-08T13:32:40.893 回答