我的主要表单有两个面板,左对接和右对接。右侧面板有两个带有顶部底座和底部底座设置的子面板。 usercontrol将添加到右侧顶部面板。
我的usercontrol有一个面板和一个标签。面板固定在所有4个面上,标签固定在除底部以外的所有面上。在运行时,我创建此usercontrol并将其设置为dockstyle = fill,然后将其添加到我的右上方面板。
将所有内容设置为“填充”后,我希望当我将usercontrol添加到面板时,它将采用适当的宽度和高度,并将该信息传递给我的usercontrol内的子控件(标签)。
我的问题是,当我在usercontrol上的Load事件期间创建对象时,不会发生这种大小的拉伸。即使已为用户控件运行了initializecomponent,其内部的面板(4个角已锚定)也未获取可用空间的x / y值。结果,我的usercontrol显示了我想要的宽度的大约50%。
让我们说代替在usercontrol加载期间创建对象而不是启动计时器并让计时器在引发tick事件时调用我的create例程。当我做这样的事情时,我的对象是用我期望的全宽度/高度创建的。这里唯一的问题是这会导致我的界面出现延迟。
有人可以帮助解释这种行为吗?我的mainform正在调用一个“load gui”例程,该例程实例化用户控件,设置面板大小,然后将usercontrols添加到这些面板。这个特定的用户控件是从该load gui例程加载到面板中的最后一个,因此不知道父面板的宽度/高度是否有意义。这是我的第一个应用程序之一,我故意尝试使用dockstyle = fill来保持不同主要表单大小的一致性,而无需编写所有额外的size_changed代码处理程序。一旦我知道问题所在,我确信这个很容易解决。
感谢您提供的任何帮助!
答案 0 :(得分:0)
这结果是父用户控件的填充问题。我还必须允许一些摆动空间,以确保控件没有溢出面板,所以我做了一个parent.width - 15,并且与填充一起使一切工作更好。