我在面板1上有一个拆分容器我添加了一个groupbox,其中groupbox是一个flowcontrol,它有动态数量的文本框,我已经将groupbox和flowcontrol设置为dockstyle来填充。 在代码中,我还将文本框设置为停靠样式以填充,但是当我移动拆分器时它们不会调整大小,而父流控制会调整大小。
Label labelInput = new Label();
TextBox listBoxNewInput = new TextBox();
listBoxNewInput.Name = ce.ToString();
labelInput.AutoSize = true;
labelInput.Font = new Font(labelInput.Font, FontStyle.Bold);
listBoxNewInput.Multiline = true;
// Add vertical scroll bars to the TextBox control.
listBoxNewInput.ScrollBars = ScrollBars.Vertical;
// Allow the RETURN key in the TextBox control.
listBoxNewInput.AcceptsReturn = true;
// Allow the TAB key to be entered in the TextBox control.
listBoxNewInput.AcceptsTab = true;
// Set WordWrap to true to allow text to wrap to the next line.
listBoxNewInput.WordWrap = true;
listBoxNewInput.Text = ts.ToString();
//listBoxNewInput.Width = 150;
listBoxNewInput.MinimumSize = new Size(200,150);
listBoxNewInput.MaximumSize = new Size(1000, 150);
listBoxNewInput.Dock = DockStyle.Fill;
listBoxNewInput.TextChanged += new EventHandler(listBoxNewInput_TextChanged);
//Add the newly created text box to the list of input text boxes
inputTextBoxesList.Add(listBoxNewInput);
//Add the labels and text box to the form
flowLayoutPanel1.Controls.Add(labelInput);
flowLayoutPanel1.Controls.Add(listBoxNewInput);
如果我尝试将控件直接放入spliter面板1,则仅显示前两个控件,当我移动拆分器时会调整大小
splitContainer1.Panel1.Controls.Add(labelInput); splitContainer1.Panel1.Controls.Add(listBoxNewInput);
- >如果我把它们放在流量控制中的控件调整大小,当我移动分割器时会很好 或 - >当我将它们直接放入分割器面板1时,所有控件都会出现
答案 0 :(得分:1)
根据你的评论和我认为你想要完成的事情,我认为你需要用TableLayoutPanel替换FlowLayoutPanel,因为听起来你只是将一个TextBox堆叠在另一个下面。
创建一个包含1列和1行的TableLayoutPanel。
这是一个有效的例子:
tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
tableLayoutPanel1.RowStyles.Clear();
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Absolute, 150));
for (int i = 0; i < 4; i++) {
AddTextBox("TextBox #" + i.ToString());
}
private void AddTextBox(string info) {
TextBox tx = new TextBox();
tx.Multiline = true;
tx.Text = info;
tx.ScrollBars = ScrollBars.Vertical;
tx.WordWrap = true;
tx.Height = 150;
tx.Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right;
tableLayoutPanel1.Controls.Add(tx);
}
我没有对接,而是设置了TextBox的高度,然后设置了Anchors,这样当SplitPanel调整大小时,TextBox会适当调整大小。