2010-08-09 15 views
9

con un ancoraggio posso scrivere la seguente linea:Come Dock per la parte superiore e ha lasciato il

myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left); 

e sarà ancorare myControl a sinistra e la parte superiore.

Perché non è possibile effettuare le seguenti operazioni:

myControl.Dock = (DockStyle.Top | DockStyle.Left); 

posso scrivere la linea di cui sopra, ma non fa altro che impostare la DockStyle a sinistra.

Qualche idea/motivi per questo?

+0

Penso che non abbiate compreso appieno come ottenere il layout desiderato usando dock, anchor e qualche tipo di controllo contenitore (come TableLayoutPanel). Con questi elementi sei in grado di costruire ogni tipo di layout che si adatta perfettamente alle dimensioni della tua forma/controllo. Quindi se fornisci maggiori informazioni su ciò che ti piace ottenere nel tuo layout sono sicuro che possiamo trovare una soluzione. – Oliver

risposta

11

Il motivo per cui non è possibile farlo è dovuto al fatto che l'impostazione di DockStyle fondamentalmente banchina/riempie l'interezza del bordo specificato.

Ad esempio, DockStyle.Left significa che l'altezza della voce di essere ancorata sarà sempre l'altezza del contenitore e il X, posizione Y sarà sempre 0, 0.

DockStyle.Top significa che la larghezza della l'articolo sarà sempre la larghezza del contenitore e la posizione sarà sempre 0,0.

L'impostazione DockStyle.Top e DockStyle.Left fornisce essenzialmente DockStyle.Fill. Cioè la stessa larghezza e l'altezza come contenitore.

+0

Grazie Gtt, questo spiega quello che sto vedendo. Potrei dover fare un'altra domanda su cosa sto cercando di ottenere una volta capito come esprimerla! – AidanO

+0

Nessun problema. Ho passato tutta la pena di attraccare e ancorare me stesso, quindi terrò d'occhio la prossima domanda. – GenericTypeTea

1

DockStyle può essere impostato solo su un valore, al contrario di Anchor che può essere impostato su molti.

Ecco perché è disponibile la proprietà Anchor in modo da poter regolare il modo in cui il controllo reagisce al ridimensionamento del modulo in modo più specifico.

+0

Questo è vero, ma qual è il motivo di questa restrizione all'aggancio e c'è un modo per aggirarlo? – AidanO

+0

Non conosco un motivo specifico per cui, penso che il Dock sia solo per il semplice, facile aggancio dei controlli e non funzionerebbe con multipli (non potreste avere un riempimento stile dock E nessuno per esempio) quindi ecco perché c'è il Ancoraggio pure. – w69rdy

3

A Dock è un set di ancoraggio predeterminato, mentre uno Anchor è una configurazione personalizzata del dock.

DockStyle.Top è lo stesso di Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right) eccetto che un ancoraggio può sedersi in qualsiasi posizione iniziale e un dock si sposterà al bordo più lontano.

+0

Sono un po 'simili, ma non sono uguali. L'ancoraggio consente di impostare le posizioni lontano dai bordi del contenitore. L'ancoraggio obbliga il controllo ancorato al bordo specificato. Cioè Sinistra = 0. Superiore = 0. – GenericTypeTea

+0

@GenericTypeTea Ho detto questo nella mia risposta – Codesleuth

+0

Così hai fatto. Le mie scuse, a quanto pare non l'ho letto correttamente. – GenericTypeTea

Problemi correlati