Winforms 状态栏中的两个状态面板,如何确保它们始终占据状态栏的一半?

Winforms 状态栏中的两个状态面板,如何确保它们始终占据状态栏的一半?,winforms,statusbar,Winforms,Statusbar,我在一个状态栏中有两个(或通常,nn个)状态面板 该状态栏将始终根据宿主Windows窗体大小调整大小 现在,如何确保每个(或所有n数量的)状态面板获得相同的状态栏宽度,以及如何确保它们按照panels对象中的顺序从左到右很好地堆叠起来 只需在表单上的resize事件中添加一个调整面板大小的函数即可。对于两个面板,您只需要在表单的初始化函数中添加类似的内容来处理调整大小。(使用C#) 面板的顺序不应该改变,所以你不必担心这一点。我尝试了你的建议,在表单构造函数和表单加载事件中手动设置面板宽度,两

我在一个状态栏中有两个(或通常,
n
n个)状态面板

该状态栏将始终根据宿主Windows窗体大小调整大小


现在,如何确保每个(或所有
n
数量的)状态面板获得相同的状态栏宽度,以及如何确保它们按照
panels
对象中的顺序从左到右很好地堆叠起来

只需在表单上的
resize
事件中添加一个调整面板大小的函数即可。对于两个面板,您只需要在表单的初始化函数中添加类似的内容来处理调整大小。(使用C#)


面板的顺序不应该改变,所以你不必担心这一点。

我尝试了你的建议,在表单构造函数和表单加载事件中手动设置面板宽度,两者都不起作用。它在我的测试中起作用。您还在表单调整大小事件中设置宽度,对吗?
//To find to width of each panel, subtract 30 (or so, but your panels need to leave a little
//space) from the width of the form, and then divide by number of panels.

//Initialize the panel widths (If they aren't correct already)
statusBarPanel1.Width = statusBarPanel2.Width = (Width - 30) / 2;

//Make the panel widths update if the form is resized
Resize += (s, e) => statusBarPanel1.Width = statusBarPanel2.Width = (Width - 30) / 2;