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
):
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 № 1L'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