如何强制 WinForms 控件填充 TableLayoutPanel 中多列跨单元格中的 FlowLayoutPanel?
How to force a WinForms control to fill up FlowLayoutPanel that's in a multi-column-spanning cell in a TableLayoutPanel?
我有一个 TextBox
,它位于 FlowLayoutPanel
中,它位于 TableLayoutPanel
的单元格内。 FlowLayoutPanel
跨越 TableLayoutPanel
的 5 列,并填满 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 ())
您不能真正 Dock
在流式布局面板中,这没有任何意义。
流式布局面板用于包含一组一起流动的控件(从左到右,从上到下),让一个控件填充它将否定流式布局的用处。
如果您想用文本框填充列,只需使用 Textbox
并将 Dock Fill
和 Multiline
设置为 true
停靠在 FlowLayoutPanel 中不起作用,因为它想要按流动顺序布置控件。由于您想停靠填充 TextBox 控件,请尝试使用简单的 Panel 控件。
此外,将 TextBox 的多行 属性 设置为 true。
我有一个 TextBox
,它位于 FlowLayoutPanel
中,它位于 TableLayoutPanel
的单元格内。 FlowLayoutPanel
跨越 TableLayoutPanel
的 5 列,并填满 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 ())
您不能真正 Dock
在流式布局面板中,这没有任何意义。
流式布局面板用于包含一组一起流动的控件(从左到右,从上到下),让一个控件填充它将否定流式布局的用处。
如果您想用文本框填充列,只需使用 Textbox
并将 Dock Fill
和 Multiline
设置为 true
停靠在 FlowLayoutPanel 中不起作用,因为它想要按流动顺序布置控件。由于您想停靠填充 TextBox 控件,请尝试使用简单的 Panel 控件。
此外,将 TextBox 的多行 属性 设置为 true。