PDA

View Full Version : [VB.NET] Ancorare una TEXT ad una MDIform


OrcaAssassina
29-04-2008, 18:20
Ho una MDIform e vorrei mettere una textbox sullo sfondo

Se la metto, quando eseguo il programma ed apro una finestra all'interno della mdiform la text risulta "galleggiare" sopra alla form.

Come faccio per ancorarla???

Ciao e grazieeeeeee

MarcoGG
30-04-2008, 09:33
Per "ancorare" un controllo c'è la proprietà Anchor, che esiste proprio per questo scopo.
Per il problema della textbox che "buca" la form figlia della MDI, è un problema dovuto al fatto che la MDI non nasce come form adatta a contenere controlli standard, ma solo Form-Figlie, e quindi ha una sua naturale tendenza a mantenersi in background rispetto a TUTTI i controlli che contiene...

Una possibile soluzione sta nell'oscurare la textbox sottostante quando la Form-Figlia le passa sopra. Se ad esempio ho una textbox ancorata all'angolo sinistro-superiore della MDI, io faccio così :

1. Anzitutto imposto TextBox1.Visible=False nelle proprietà di TextBox1.

2. Codice per la Form-Figlia ( nel mio caso FormA, istanza di FormApp ) :

Private Sub FormApp_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.LocationChanged

formA.Text = formA.Location.X & " - " & formA.Location.Y
Dim txtbox As TextBox
Try
For Each txtbox In FormMainMDI.ActiveForm.Controls
If formA.Location.Y < (txtbox.Top + txtbox.Height) And formA.Location.X < (txtbox.Left + txtbox.Width) Then
txtbox.Visible = False
Else
txtbox.Visible = True
End If
Next
Catch ex As Exception
End Try

End Sub

Da modoficare/adattare a piacere... ;)