如何强制 WinForms 控件填充 TableLayoutPanel 中多列跨单元格中的 FlowLayoutPanel?

Yaw*_*war 7 f# tablelayoutpanel flowlayoutpanel winforms

我有一个TextBox位于FlowLayoutPanela 的单元格内的TableLayoutPanel。跨越FlowLayoutPanel5 列TableLayoutPanel并填满 5 列的整个宽度。但是, 并TextBox没有填满 的整个宽度FlowLayoutPanel,正如您在此处看到的那样(黑色边框是FlowLayoutPanel):

测试台布局面板

我怎样才能让TextBox横跨整个宽度FlowLayoutPanel

生成此示例的代码:

// fsi --exec Test.fsx
open System
open System.Windows.Forms

let frmMain () =
  let f = new Form(Text = "Test table layout panel")
  let tlp =
    new TableLayoutPanel
      ( ColumnCount = 5,
        RowCount = 1,
        AutoSize = true,
        Parent = f )
  let flp =
    new FlowLayoutPanel
      ( AutoSize = true,
        BorderStyle = BorderStyle.FixedSingle )
  let tb = new TextBox(Parent = flp)

  tlp.Controls.Add(flp, 0, 0)
  tlp.SetColumnSpan(flp, 5)
  flp.Dock <- DockStyle.Fill
  tb.Dock <- DockStyle.Fill

  f

[<STAThread>]
do
  Application.EnableVisualStyles()
  Application.Run(frmMain ())
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 5

停靠在 FlowLayoutPanel 中不起作用,因为它希望按流动顺序布局控件。由于您想要停靠填充 TextBox 控件,请尝试使用简单的 Panel 控件。

另外,将 TextBox 的 Multiline 属性设置为 true。