2011-08-28 13 views
6

È possibile ancorare un controllo a un altro controllo?è possibile ancorare un controllo a un altro controllo?

Diciamo che voglio che il mio Button1 mantenga la sua distanza di 4px dal controllo Textbox1 senza
utilizzando il controllo FlowLayoutTable?

"Why would be this advantageous?" - one could ask 

Beh Diciamo che avere uno SplitContainer con una divisione verticale e si dispone di caselle di testo
in SplitContainer.Panel1 che sono ancorati a sinistra ea destra, ma
larghezza della loro dimensione massima è minore si consente al la larghezza di SplitContainer.Panel1 di avere (forse
perché si desidera che il testo di presentarsi lì o perché imbottitura supplementare o qualsiasi altra cosa, è il nome)

Ora diciamo che hai anche un pulsante accanto al Textbox1 e non volete Textbox1 a sia
sovrapposti al Button1 perché si estende fino a lontano.

se voglio avere il mio testo riempire la SplitContainer.Panel1 in un modo che lascia lo spazio per
controllo Button1 mentre ancora entrambi sono ancorati a destra come potrei farlo?

+0

Difficile visualizzare dalla domanda. L'ancoraggio è appropriato per un layout semplice. Implementare layout personalizzati sottoscrivendo l'evento SplitterMoving o l'evento LocationChanged o SizeChanged di un controllo e modificando la proprietà Location o Size. –

+0

@Hans Grazie, ho pensato che sarebbe stata una soluzione o più probabilmente il MODO PROPERTO per farlo, mi stavo chiedendo se è possibile, ma la tua risposta solleva altre domande in me, che posso o non posso chiedere qui o in un'altra domanda :) – Qqbt

+0

@Hans La tua domanda ha sparato un evento e ti ho chiamato WithEvents, sto ascoltando :) – Qqbt

risposta

5

Uso estesamente TableLayoutPanels e FlowLayoutPanels per ottenere questo risultato. Per tua specifica circostanza utilizzerei un TableLayoutPanel con tre colonne e una riga per ogni TextBox.

Colonna 1: larghezza automatica, contiene etichette tutte con AutoSize = True.
Colonna 2: larghezza 100%, contiene caselle di testo tutte con Anchor = Left, Right.
Colonna 3: larghezza automatica, contiene il pulsante nella riga appropriata.

Successivamente, ho impostato tutte le caselle di testo, ad eccezione di quella accanto al pulsante, ColumnSpan = 2. Quindi metti il ​​TableLayoutPanel nello SplitPanel e imposta Dock = Fill.

0

sarà una sequenza in diretta che dovrebbe scorrere da sinistra e continuare a lavorare lascia il lato destro dovrebbe essere il layout.

  1. L'elemento di elenco dovrebbe essere fornito di cure sicure.
  2. Voce dell'elenco tutte le cose che utilizzano in questo metodo devono essere fornite e controllate;
Problemi correlati