Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Bordo esterno di un'applicazione
Forum - C# / VB.NET - Bordo esterno di un'applicazione

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:59
Sabato, 20/09/2008
Dinuovo ciao, scusate se posto due topics di fila, ma nella sezione dei sorgenti Visual Basic ho trovato un programma che mi ha incuriosito molto, si chiama .U.P.2. Screen Shot capture di Ultra Phonic 2, ecco il link http://www.pierotofy.it/pages/download.php?filename=100p97 .... Mi ha incuriosito molto per il fatto che al posto del solito bordo esterno, ha un'immagine (che costituisce il bordo stesso) che penso sia stata disegnata dall'autore stesso del programma. Ebbene scusate l'ignoranza,ma è possibile fare qualkosa del genere anche in ambiente .Net, nel mio caso vb.net ??? Un grazie ancora per il vostro aiuto...Ciao :k:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 9:35
Domenica, 21/09/2008
Basta impostare FormBorderStyle su None e mettere l'immagine come BackgroundImage del form.

PM Quote
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:55
Domenica, 21/09/2008
Ah si aveve provato però poi avevo visto ke alla fine il form aveva sempre forma quadratica e nn rotonda come credevo, comunque poi ho visto che nel sorgente utilizza una windows api x disegnare i contorni rotondi, nn mi piacciono molto le api (:rotfl:) quindi mi fermo qui. Chiedevo solo se esista qualke altro metodo x rendere almeno i quattro angoli del bordo tondeggianti, senza usare delle api specifiche altrimenti nn fa niente lascio perdere...

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:44
Domenica, 21/09/2008
E' molto semplice. Dove vuoi che l'immagine sia trasparente, metti un colore "strano", che è molto improbabile trovare in altre parte dell'applicazione, ad esempio fucsia. Poi imposti la TrasparencyKey del form su quel colore, per renderlo trasparente. Nessuna api.

Ultima modifica effettuata da Il Totem il 21/09/2008 alle 20:44
PM Quote
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:34
Lunedì, 22/09/2008
Perfetto grazie Totem, solo un'ultima cosa, eliminando il bordo, non si può più spostare il form con il mouse, quindi per evitare questo problema nell'evento MouseDown del form faccio avviare un timer il cui codice è:
Codice sorgente - presumibilmente Plain Text

  1. Me.Location = Cursor.Position


e poi nell'evento MouseUp fermo il timer. Il tutto funziona bene tranne per il fatto che quando muovo il mouse, il form si posiziona con l'angolo in alto a sinistra sotto il mouse, mentre io vorrei che non si muovesse rispetto al form. Più o meno sono riuscito a spostarlo al centro del form sottraendo alle coordinate x e y del cursore il valore di 200, però non si potrebbe fare qualcosa che come detto prima il mouse resta immobile rispetto al form ?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:41
Martedì, 23/09/2008
Codice sorgente - presumibilmente VB.NET

  1. Private Sub ClassBox_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
  2.         MousePos = New Point(MousePosition.X - Me.Location.X, MousePosition.Y - Me.Location.Y)
  3.         IsMouseDown = True
  4.     End Sub
  5.  
  6.     Private Sub ClassBox_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
  7.         IsMouseDown = False
  8.     End Sub
  9.  
  10.     Private Sub ClassBox_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
  11.         If IsMouseDown Then
  12.             Me.Location = New Point(MousePosition.X - MousePos.X, MousePosition.Y - MousePos.Y)
  13.         End If
  14.     End Sub


PM Quote
Avatar
klez91 (Normal User)
Pro


Messaggi: 117
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:36
Mercoledì, 24/09/2008
Non ho parole, grazie Totem.

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 15:39
Mercoledì, 24/09/2008
E' un pezzo del sorgente di Data Viewer :D

PM Quote
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 21:37
Giovedì, 25/09/2008
Ho provato anche io a fare un form con delle parti trasparenti ma se faccio il trascinamento su una parte trasparente (appartenente comunque al form) mi viene spostato ugualmente.
Come si può fare per evitare che si sposti se viene trascinato da un punto trasparente?

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo