Δημιουργία custom Shape Form

Στο .NET με πολύ εύκολο τρόπο μπορούμε να δημιουργήσουμε δικά μας Skin για της φόρμες μας

Εδώ Βλέπουμε πώς είναι η κλασική Windows Form

Παρακάτω Βλέπουμε πώς μπορεί νά είναι η δικιά μας φόρμα

Πώς γίνεται τώρα αυτό.

Έχουμε φτιάξει ένα image πού έχει την εμφάνιση πού θέλουμε νά έχει η φόρμα μας και το χρησιμοποιούμε  ώς BackroundImage .της φόρμας μας (Form1).

Κατόπιν χρησιμοπούμε τον παρακάτω κώδικα

#Region "API Declarations"

   Private Declare Sub ReleaseCapture Lib "user32" ()

   Private Declare Sub SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer)

   Private Const WM_NCLBUTTONDOWN As Integer = &HA1

   Private Const HTCAPTION As Integer = 2

#End Region

'Για νά μετακινηθεί η φόρμα

Private Sub frmMain_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown

   If e.Button = MouseButtons.Left Then

      ReleaseCapture()

      SendMessage(Me.Handle.ToInt32, WM_NCLBUTTONDOWN, HTCAPTION, 0&)

   End If

End Sub

Τοποθετούμε ένα pictureBox στην φόρμα μας και βάζουμε τον παρακάτω κώδικα

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click

'Το picturebox τοποθετείται πάνω από το κουμπί κλεισίματος που έχει σχεδιαστεί στην εικόνα

'το backcolor property δηλώνεται ώς transparent

Me.Dispose()

End Sub

'Κατόπιν βάζουμε στο paint Event τον παρακάτω κώδικα

Private Sub frmMain_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

Dim img As Bitmap = Me.BackgroundImage

img.MakeTransparent(img.GetPixel(0, 0))

End Sub

Μπορούμε βέβαια νά αλλάζουμε δυναμικά το skin της φόρμας μας έχοντας άλλες εικόνες μέ το σχήμα της φόρμα που θέλουμε φορτόνωντας την εικόνα που θέλουμε κάθε φορά από ένα file που την

έχουμε βάλει .

π.χ. Dim img As New Bitmap("filename") αλλαγή στο Paint Event

Share


Έχουν δημοσιευτεί Τετάρτη, 3 Μαΐου 2006 11:36 πμ από το μέλος imanos
Καταχώρηση στις κατηγορίες:

Σχόλια:

Χωρίς Σχόλια