Oppure

Loading
22/10/10 8:54
foralobo
Non so se si capisce bene dal titolo...ma mi servirebbe riuscire a spostare il form cliccando non sulla barra del titolo ma da un aria dentro il form che sia definita e non lo spazio che occupa l'intero form...ci sono diversi esempi in giro che permettono di spostare il form cliccando su una zona qualunque del form ma non risolvono il mio prob..

ho creato una barra del titolo personalizzata tramite l'oggetto graphics del form e ho eliminato la barra del titolo...vorrei adesso poter spostare il form cliccando solo su quell'aria che rappresenta la barra creata (un rettangolo).

Inoltre vi chiedo se è possibile fare lo stesso lavoro cliccando su un controllo interno al form...tipo un picturebox...

grazie
aaa
22/10/10 13:18
Ale96
Puoi sfruttare l'evento mousemove, che si verifica quando il mouse si muove su un controllo, sia che sia premuto sia che non lo sia.
ho sfruttato questo metodo per spostare la finestra di un programma, questo è il codice, guarda le sub BtnMove_MouseDown e quella precedente.
pierotofy.it/pages/sorgenti/browse/18662/4438/
aaa
22/10/10 15:06
foralobo
Postato originariamente da Ale96:

Puoi sfruttare l'evento mousemove, che si verifica quando il mouse si muove su un controllo, sia che sia premuto sia che non lo sia.
ho sfruttato questo metodo per spostare la finestra di un programma, questo è il codice, guarda le sub BtnMove_MouseDown e quella precedente.
pierotofy.it/pages/sorgenti/browse/18662/4438/



ottimo..proprio quello che fa al caso mio...mettendo una picturebox trasparente nell'aria che voglio usare come barra del titolo va bene...

in realtà ho provato a fare lo stesso con il form creando un rettangolo con le coordinate e le dimensioni dell'area scelta e poi creandomi una condizione che mi facesse funzionare il codice se le coordinate del mouse rientrassero in quell'area...

risultato?
funziona si però se muovo velocemente a quanto pare non è molto efficiente..credo che il problema stia proprio nei colcoli all'interno del mousemove...troppi per farli cosi velocemente

ecco il codice

Dim r As Rectangle

    Private Sub BtnMove_MouseMove(ByVal sender As System.Object, ByVal e As MouseEventArgs) Handles Me.MouseMove
        r = New Rectangle(0, 0, Me.Width, 15)

        If e.X >= r.X And e.X <= r.Width And e.Y >= r.Y And e.Y <= r.Height Then
            If e.Button = Windows.Forms.MouseButtons.Left Then
                Me.Location = New Point(Me.Location.X + e.X - p.X, Me.Location.Y + e.Y - p.Y)
            End If
        End If

        btnTempo.Text = a

    End Sub




aaa