예전 본 책을 들추다가 흔하게 만들어 보는 폼을 만드는 소스를 보았다.
그리고 
한번 쳐본다.

2D 에 관한 NameSpace 를 추가해주고 
Imports System.Drawing.Drawing2D


먼저 폼을 Load 하면서 폼의 사각형 구역을 구하고 그 사각형 내에 동그란 Ellipse 를 추가한다.
그리고 그려질 구역을 다시 설정한다.


    Sub SetEllipseRegion()

        Dim rect As Rectangle = Me.ClientRectangle

        Using path As GraphicsPath = New GraphicsPath
            path.AddEllipse(rect)

            Me.Region = New Region(path)
        End Using
    End Sub

그리고 Form Load Event 에서 위 Method를 실행시킨다.


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SetEllipseRegion()
    End Sub


F5 를 눌러 실행을 시킨다.

 
 
위와 같이 Title 과 폼의 테두리가 그대로 보이는 동그란 폼이 그려졌으며 타이틀바를 클릭하여 드래깅을 하면 폼을 이동시킬수도있다.

이것은 폼 전체를 ClientRectangle로 구역을 설정했기 때문이며

이를 제거하려면
폼의 설정에서 


 

FromBorderStyle 을 None 으로 선택하고 실행시켜보면


이런 식으로 깨끗한 Ellipse Form 이 완성된다.

이 폼을 마우스를 이용하여 움직이고자 하는데..
모두들 알고 있다 시피

Mouse Down, Move, Up Event 를 이용하여 폼을 이동시킬것이다.

그 내용은 아래와 같다.




    Private Sub Form1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
        If e.Button <> Windows.Forms.MouseButtons.Left Then
            Return
        End If
        DownPoint = New Point(e.X, e.Y)
    End Sub

    Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        If DownPoint = Point.Empty Then Return
        Dim location As Point = New Point(Me.Left + e.X - DownPoint.X, Me.Top + e.Y - DownPoint.Y)
        Me.Location = location
    End Sub

    Private Sub Form1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button <> Windows.Forms.MouseButtons.Left Then Return

        DownPoint = Point.Empty
    End Sub

위 코드를 입력하고

F5번 을 눌러 실행을 시키고 마우스로 클릭하여 폼을 움직여 보자...

^^

짝짝짝...



간단한 따라하기였다.

나 자신도 따라하기를 하면서 그 때 정리하지 못했던 것들을 정리 할 수 있어서 좋았다.
계속해서 짤막짤막한 따라하기 예제를 하나씩 만들어 보겠다.
언제나 처럼 작심삼일이 될지 모르나....

지금 현재는 재미있다. ^^



행복한 고수되셔요...


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형

'.NET > VB.NET' 카테고리의 다른 글

[VB.NET] 생산성을 높여라...  (0) 2009.04.30
[VB.NET] 보색 간단하게 구하기  (0) 2009.04.30
[VB.NET] Enter 로 Sort 되는 TextBox  (0) 2009.04.30
[VB.NET]Refactor! for Visual Basic 2008  (0) 2009.04.30
[VB.NET] XML 접근하기 ...  (0) 2009.04.30

+ Recent posts