设置DockStyle.当我移动分割器时,动态控件的填充不会调整大小



我在面板1上有一个分裂容器,我添加了一个组框,在组框中是一个具有动态数量的文本框的流控制,我已经将组框和流控制设置为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);

如果我尝试将控件直接放入拆分器面板1中,只有前两个控件出现,当我移动拆分器

时,它们会调整大小。
splitContainer1.Panel1.Controls.Add(labelInput); splitContainer1.Panel1.Controls.Add(listBoxNewInput);

->如果控件当我把它们放在流量控制调整大小,当我移动分配器,这将是很好的->当我将所有控件直接放入分条面板时,它们就会出现1

根据你的评论和我认为你想要完成的,我认为你需要用一个TableLayoutPanel代替FlowLayoutPanel,因为听起来你只是把一个文本框堆叠在另一个文本框下面。

创建一个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的高度,然后设置了anchor,这样当SplitPanel调整大小时,TextBox也会相应地调整大小。

相关内容

  • 没有找到相关文章

最新更新