【发布时间】:2012-11-08 10:28:46
【问题描述】:
我认为这很奇怪。我有一个使用窗体设计器创建的屏幕(Windows 窗体)。我现在想根据某些或其他标准以编程方式更改其中一个控件的宽度,即在运行时。
我的问题是我似乎无法做到这一点。我的方法是在表单类 InitializeComponent() 方法执行后(比如在表单构造函数的末尾)为 Width 属性分配一个新值。手表显示控件属性已更改,但随后显示的屏幕会忽略新值并使用 InitializeComponent() 中分配的值。
我在尝试做一些不可能的事情吗?后台是否有一些巫术阻止了设计师创建的控件,或者我只是以错误的方式处理它?
【问题讨论】:
-
您需要将您尝试过的代码发布到 A. 提供您想要做什么的示例。 B. 所以我们可以看到你哪里出错了......
-
请添加您的代码,您现在可以更改宽度
-
我该怎么做?它非常大,所以我无法添加为评论
-
这是精简的表单构造函数:
public ScreenEditor() { // // Windows 表单设计器支持所需 // InitializeComponent(); this.InitializeDesignHost(); .... this.panel2.Width = 1000; this.panel2.Invalidate(); }panel1 占据表单的宽度,锚定底部,左侧 panel2 包含在 panel1 中,占据了 panel1 和左半部分的整个高度,并且锚定在顶部和左侧。任务是在运行时移动panel2的右边缘,使其或多或少地占据panel1的宽度。 -
为格式错误的代码道歉 - 我在这个编辑器上有点挣扎。