mus*_*fan 8 c# splitcontainer winforms
一般问题
该应用程序是C#WinForms .Net 4.0.
我有一个SplitContainer占据大部分形式的东西,它被设置为各个方向的锚点,所以它与表格一起重新调整大小.左侧面板(Panel1)有一个简单的菜单,这里没有问题.右侧面板(Panel2)更复杂,包含许多嵌套的选项卡控件(包含大量控件) - 它非常复杂,但并没有改变.
问题是重新调整表单大小不是很好.事实上,如果您通过缓慢拖动边缘来调整大小然后它可以正常工作,但快速拖动或使用"恢复"按钮(窗体的右上角)然后问题发生.
我的控制层次结构
以下是我的控件层次结构的一个简单示例,它绝对是一个缩减版本,但突出显示嵌套的选项卡控件,它可能有助于复制:
调试细节
经过一些调试后,看起来它实际上是Panel2(拆分容器的子代)没有正确调整大小,实际SplitContainer本身调整得很好.
以下是显示此信息的调试值...
全尺寸表格,在调整大小之前:
splitContainerMain.Width: 1479
splitContainerMain.Panel2.Width: 1206
panelCenter.Width: 1203
tabControlMain.Width: 1215
Run Code Online (Sandbox Code Playgroud)
如预期的那样,splitContainerMain.Panel2.Width小于splitContainerMain.Width.
调整问题后调整大小:
splitContainerMain.Width: 815
splitContainerMain.Panel2.Width: 1206
panelCenter.Width: 1203
tabControlMain.Width: 1215
Run Code Online (Sandbox Code Playgroud)
可以看出,splitContainerMain.Width已根据需要重新调整大小,但splitContainerMain.Panel2.Width其后的孩子却没有.
注意:请记住,如果我手动调整窗体大小,宽度会正确更新 - 这不是我没有正确设置任何锚点的问题.
我的努力到目前为止
我想知道问题是否与此问题有关,但我不准备创建一个新的"MySplitContainer"来尝试解决这个问题.
我试图做的是使用各种Form resize事件并尝试手动设置宽度,但无济于事.我想我想尝试的是Panel2.Width在某种事件中设置值.
我在寻找什么
splitContainerMain.Panel2.Width在splitContainerMain尺寸变化时正确调整大小?Panel2.Width应该是什么?如何从Form.Resize事件中设置该值?(或另一个事件?)从我看来,对于产生问题的控件(包括 splitcontainer 面板),您应该将锚点设置为 none。
另外,我建议使用码头填充属性来最好地使用 splitcontainers。
如果需要进一步帮助,请提供设计师文件,以便更好地查看。