在我的表单中,我有一个autosize = true的面板。
该面板包含一个SplitContainer控件,其中有两个水平排列的面板。
顶部面板包含数据网格视图,底部面板包含文本框。
我有没有办法以编程方式调整顶部面板的大小,因此整个SplitContainer基于datagridview高度的变化(由行数决定)
更新: 我现在能够调整具有Dock = Bottom的SplitContainer的大小,但是,即使父面板具有Autosize = True
答案 0 :(得分:0)
尝试根据网格的高度设置SplitContainer的分割距离。
SplitterDistance 从SplitContainer的左边缘或上边缘获取或设置拆分器的位置(以像素为单位)。
修改强> 对我来说有用的是将SplitContainer的Dock设置为 None ,然后允许我设置SplitContainer的大小(调用SplitContainer.Height)并让面板调整自身以适应SplitContainer。
编辑2 要允许SplitContainer自动调整其宽度,您可以尝试以下操作:
splitContainer.Width = this.ClientRectangle.Width - (splitContainer.Location.X * 2)
This.ClientRectangle.Width应该获得没有边框的窗口宽度(如果父窗体是窗体)。
答案 1 :(得分:0)
由于某种我无法理解的原因,如果我在代码中强加面板大小,则该对象将获得正确的大小。 如果我在IDE中定义面板尺寸为300x300,则稍后显示的尺寸会变小,并且线条不可见。
public Form1()
{
InitializeComponent();
panel1.Size = new Size(300, 300);
}