수색…


VB.NET Forms의 Hello World

양식이 표시된 경우 메시지 상자를 표시하려면 다음과 같이하십시오.

Public Class Form1
    Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles MyBase.Shown
        MessageBox.Show("Hello, World!")
    End Sub
End Class
To show a message box before the form has been shown:

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        MessageBox.Show("Hello, World!")
    End Sub
End Class

Load ()가 먼저 호출되고 폼이 처음로드 될 때 한 번만 호출됩니다. Show ()는 사용자가 양식을 시작할 때마다 호출됩니다. Activate ()는 사용자가 양식을 활성화 할 때마다 호출됩니다.

Show ()가 호출되기 전에 Load ()가 실행되지만 경고 메시지가 표시됩니다. show에서 msgBox ()를 호출하면 Load ()가 완료되기 전에 msgBox ()가 실행될 수 있습니다. 일반적으로 Load (), Show () 및 이와 유사한 이벤트 순서에 의존하는 것은 좋지 않습니다.

초보자 용

모든 초보자가 알아야 할 몇 가지 사항은 VB에서 좋은 시작을 갖는 데 도움이 될 것입니다. 닷넷 :

다음 옵션을 설정하십시오.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

End Class

문자열 연결에는 &, +를 사용하지 마십시오. 문자열 은 널리 사용되므로 좀 더 자세하게 연구해야합니다.

가치 및 참조 유형을 이해하는 데 시간을 투자하십시오.

Application.DoEvents를 절대로 사용하지 마십시오. '주의'에 유의하십시오. 너가 사용해야하는 무언가와 같은 지점에 도달하면, 물어 보라.

문서 는 친구입니다.

양식 타이머

Windows.Forms.Timer 구성 요소는 시간이 중요 하지 않은 사용자 정보를 제공하는 데 사용할 수 있습니다. 하나의 단추, 하나의 레이블 및 Timer 구성 요소로 폼을 만듭니다.

예를 들어 사용자에게 주기적으로 시간을 표시하는 데 사용할 수 있습니다.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        Timer1.Interval = 60 * 1000 'one minute intervals
        'start timer
        Timer1.Start()
        Label1.Text = DateTime.Now.ToLongTimeString
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Label1.Text = DateTime.Now.ToLongTimeString
    End Sub
End Class

그러나이 타이머는 타이밍에 적합하지 않습니다. 예를 들어 카운트 다운에 사용하는 것입니다. 이 예에서는 3 분으로 카운트 다운을 시뮬레이션합니다. 이것은 아주 잘 여기에서 가장 지루하게 중요한 예제 중 하나 일 것입니다.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        ctSecs = 0 'clear count
        Timer1.Interval = 1000 'one second in ms.
        'start timers
        stpw.Reset()
        stpw.Start()
        Timer1.Start()
    End Sub

    Dim stpw As New Stopwatch
    Dim ctSecs As Integer

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        ctSecs += 1
        If ctSecs = 180 Then 'about 2.5 seconds off on my PC!
            'stop timing
            stpw.Stop()
            Timer1.Stop()
            'show actual elapsed time
            'Is it near 180?
            Label1.Text = stpw.Elapsed.TotalSeconds.ToString("n1")
        End If
    End Sub
End Class

button1을 클릭하면 약 3 분이 지나고 label1이 결과를 표시합니다. label1에 180이 표시됩니까? 아마도 그렇지 않습니다. 내 컴퓨터에서 182.5를 보였다!

불일치의 원인은 "Windows Forms Timer 구성 요소는 단일 스레드이며 55 밀리 초의 정확도로 제한됩니다."라는 설명서에 나와 있습니다. 따라서 타이밍에 사용해서는 안됩니다.

타이머와 스톱워치를 조금씩 다르게 사용하면 더 나은 결과를 얻을 수 있습니다.

'can be permanently set
' Tools / Options / Projects and Soluntions / VB Defaults
Option Strict On
Option Explicit On
Option Infer Off

Public Class Form1

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Enabled = False
        Timer1.Interval = 100 'one tenth of a second in ms.
        'start timers
        stpw.Reset()
        stpw.Start()
        Timer1.Start()
    End Sub

    Dim stpw As New Stopwatch
    Dim threeMinutes As TimeSpan = TimeSpan.FromMinutes(3)

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        If stpw.Elapsed >= threeMinutes Then '0.1 off on my PC!
            'stop timing
            stpw.Stop()
            Timer1.Stop()
            'show actual elapsed time
            'how close?
            Label1.Text = stpw.Elapsed.TotalSeconds.ToString("n1")
        End If
    End Sub
End Class

필요에 따라 사용할 수있는 다른 타이머가 있습니다. 이 검색 은 도움이 될 것입니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow