본문 바로가기

VB.NET

[TIPS] 컨트롤을 실행시에 작성하는 방법, 퍼포먼스 향상

반응형

컨트롤을 폼에 배치할 때, 일반적으로 Visual Studio의 폼디자이너를 사용해서 구현합니다.

그러나, 실행시에, 동적으로 컨트롤을 작성해 폼에 배치할 경우도 있겠죠.

여기에서는 Button 컨트롤을 폼에 배치하여, 실행시에 작성하는 방법에 대해서 설명합니다.

 

[컨트롤을 작성하여, 폼에 표시한다]

"Button1"이라고 하는 Button 컨트롤을 작성하고, 폼에 표시하려면 다음과 같이 하면 됩니다.

 

Private Button1 As System.Windows.Forms.Button

'폼의 실행시 이벤트 핸들러
Private Sub Form1_Load(ByVal sender As Object, _
        ByVal e As EventArgs) Handles MyBase.Load
    'Button클래스의 인스턴스를 생성한다.
    Me.Button1 = New System.Windows.Forms.Button()

    'Button컨트롤의 프로퍼티를 설정한다.
    Me.Button1.Name = "Button1"
    Me.Button1.Text = "눌러보세요."
    '사이즈와 위치를 설정한다.
    Me.Button1.Location = New Point(10, 10)
    Me.Button1.Size = New System.Drawing.Size(80, 20)

    '폼에 추가한다.
    Me.Controls.Add(Me.Button1)
End Sub

 

Button 클래스의 인스턴스를 작성해서, 필요한 프롭퍼티를 설정하고, 폼의 Controls 프롭퍼티의 Add 메소드를 사용해 폼에 배치하고 있습니다.

 

 

[퍼포먼스를 향상시키는 방법]

컨트롤을 폼에 배치할 때, 그 전에 SuspendLayout 메소드를 호출해 레이아웃 논리를 일시정지시키는 것으로 퍼포먼스가 향상됩니다.

특히 많은 컨트롤을 폼에 배치할 때는, SuspendLayout 메소드를 사용하는 편이 좋을 것입니다.
SuspendLayout 메소드를 사용하는 예는 아래를 참고해주세요.

 

Private Button1 As System.Windows.Forms.Button

'폼로드 이벤트 핸들러
Private Sub Form1_Load(ByVal sender As Object, _
        ByVal e As EventArgs) Handles MyBase.Load
    'Button클래스의 인스턴스를 작성한다.
    Me.Button1 = New System.Windows.Forms.Button()

    '폼의 레이아웃 로직을 중단시킨다.
    Me.SuspendLayout()

    'Button컨트롤의 프로퍼티를 설정한다.
    Me.Button1.Name = "Button1"
    Me.Button1.Text = "눌러보세요."
    '사이즈와 위치를 설정한다.
    Me.Button1.Location = New Point(10, 10)
    Me.Button1.Size = New System.Drawing.Size(80, 20)

    '폼에 추가한다.
    Me.Controls.Add(Me.Button1)

    '폼의 레이아웃 로직을 개시한다.
    Me.ResumeLayout(False)
End Sub

반응형