Intanto grazie a tutti,
- la form senza bordi mi serve perchè non voglio la titlebar ma ne inseritò una tramite panel nella quale potrò inserire vari oggetti, non voglio fare nessuna polemica ma non vedo come quasto cambi sul risultato della mia richiesta.
- Si con il codice precedentemente scritto “Y-panresizeblabla.height / 2” ovviamente il bordo deve avere unicamente valore pari e mi rendo conto che non è la soluzione ideale.
- il refresh rimaneva all'interno di prove fatte ma ovviamente tende a effettuare sfarfallio.
- la form in questione diventerà poi un Mdi con all'interno altre form figlie e a seconda di diverse esigenze potrebbe aver bisogno di essere ridimensionata.
questo è il mio codice credo ormai definitivo che utilizzerò :
premessa : con i comandi in Private Sub Form1_Resize di seguito mi sembra sfarfalli meno, ma lascio a Voi il vostro utilissimo suggerimento.
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.FormBorderStyle = FormBorderStyle.None
PanTop.Size = New Size(Me.Size.Width, 5)
PanBottom.Size = New Size(Me.Size.Width, 5)
PanLeft.Size = New Size(5, Me.Size.Height)
PanRight.Size = New Size(5, Me.Size.Height)
PanTop.Location = New Point(0, 0)
PanBottom.Location = New Point(0, Me.Size.Height - 5)
PanRight.Location = New Point(Me.Size.Width - 5, 0)
PanLeft.Location = New Point(0, 0)
PanTop.BackColor = Color.Red
PanBottom.BackColor = Color.Red
PanLeft.BackColor = Color.Red
PanRight.BackColor = Color.Red
PanTop.Anchor = AnchorStyles.Top + AnchorStyles.Left + AnchorStyles.Right
PanBottom.Anchor = AnchorStyles.Bottom + AnchorStyles.Left + AnchorStyles.Right
PanLeft.Anchor = AnchorStyles.Top + AnchorStyles.Bottom + AnchorStyles.Left
PanRight.Anchor = AnchorStyles.Top + AnchorStyles.Bottom + AnchorStyles.Right
End Sub
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Me.DoubleBuffered = True
Me.Update()
End Sub
Private Sub PanTop_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PanTop.MouseMove
Cursor.Current = Cursors.SizeNS
If e.Button = Windows.Forms.MouseButtons.Left Then
If Me.Size.Height + (Me.Location.Y - MousePosition.Y) > 300 Then
Me.Size = New Size(Me.Size.Width, Me.Size.Height + (Me.Location.Y - MousePosition.Y))
Me.Location = New Point(Me.Location.X, MousePosition.Y)
End If
End If
End Sub
Private Sub PanBottom_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PanBottom.MouseMove
Cursor.Current = Cursors.SizeNS
If e.Button = Windows.Forms.MouseButtons.Left Then
If MousePosition.Y - Me.Location.Y > 300 Then
Me.Size = New Size(Me.Size.Width, MousePosition.Y - Me.Location.Y)
End If
End If
End Sub
Private Sub PanLeft_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PanLeft.MouseMove
Cursor.Current = Cursors.SizeWE
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Size = New Size(Me.Size.Width + (Me.Location.X - MousePosition.X), Me.Size.Height)
Me.Location = New Point(MousePosition.X, Me.Location.Y)
End If
End Sub
Private Sub PanRight_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PanRight.MouseMove
Cursor.Current = Cursors.SizeWE
If e.Button = Windows.Forms.MouseButtons.Left Then
Me.Size = New Size(MousePosition.X - Me.Location.X, Me.Size.Height)
End If
End Sub