/ / Come forzare un controllo WinForms a riempire FlowLayoutPanel che si trova in una cella con più colonne in un TableLayoutPanel? - winforms, f #, tablelayoutpanel, flowlayoutpanel

Come forzare un controllo WinForms a riempire FlowLayoutPanel che si trova in una cella con più colonne in un TableLayoutPanel? - winforms, f #, tablelayoutpanel, flowlayoutpanel

Ho un TextBox quello è in a FlowLayoutPanel questo è all'interno di una cella di a TableLayoutPanel. Il FlowLayoutPanel si estende su 5 colonne del TableLayoutPanel e riempie l'intera larghezza delle 5 colonne. comunque, il TextBox non riempie tutta la larghezza del FlowLayoutPanel, come puoi vedere qui (il bordo nero è il FlowLayoutPanel):

Pannello di layout della tabella di test

Come posso ottenere il TextBox per coprire l'intera larghezza del FlowLayoutPanel?

Codice per produrre questo esempio:

// 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 ())

risposte:

1 per risposta № 1

L'ancoraggio non funziona all'interno di un FlowLayoutPanel poiché desidera impaginare i controlli in un ordine scorrevole. Poiché si desidera riempire a fondo il controllo TextBox, provare a utilizzare un semplice controllo Panel.

Inoltre, impostare la proprietà Multiline di TextBox su true.


0 per risposta № 2

Non puoi davvero Dock all'interno di un pannello di layout del flusso, non ha senso.

Un pannello di layout del flusso viene utilizzato per contenere una raccolta di controlli che fluiscono insieme (da sinistra a destra, dall'alto verso il basso), con un riempimento di controllo che annullerà l'utilità del layout del flusso.

Se vuoi riempire le colonne con una casella di testo, basta usare a Textbox con un Dock Fill e Mutliline impostato true