Originariamente inviato da ShaleN
Se non vado errato, la proprietà
Location della classe Control non si riferisce al Form, ma al contenitore che contiene il controllo (scusa il gioco di parole), che a volte è il Form.
Quindi, per risolvere il tuo problema, basta che fai:
codice:
tablelayoutpanel.Controls.Add(miaListBox)
miaListBox.Location = New Point(miaTextBox.Left, miaTextBox.Bottom)
ciao ShaleN, credo che intendesse fare una sorta di tendina per la textbox, in questo caso, se fa come hai suggerito tu, e ad esempio la textbox si trova nella seconda riga del tablelayoutpanel, non sarebbe più sotto, o comunque sarebbe spostato ecc...
credo che lui voglia essere slegato da contenitori e affini, perlomeno così mi sembra di capire.
se ho capito bene, la prima soluzione che mi viene in mente è questa :
codice:
Dim pS As Point = Me.textBox1.PointToScreen(New Point(0, 0))
'punto attuale rispetto allo schermo
Dim pC As Point = Me.PointToClient(pS)
'punto dello schermo rispetto al client
Dim p As Point
p = New Point(pC.X, pC.Y + Me.textBox1.Height)
'posizionamento al di sotto
Me.listBox1.Location = p
@Jacky87
se ho capito male allora mi scuso con ShaleN per primo, e con te.
EDIT : Versione breve
:
codice:
Dim pC As Point = Me.PointToClient(Me.textBox1.PointToScreen(New Point(0, 0)))
Me.listBox1.Location = New Point(pC.X, pC.Y + Me.textBox1.Height)