[VB.NET] 공통대화상자 - OpenFileDialog 사용법

2023. 2. 23. 13:00VB.NET/왕초보

윈도우에서 파일을 열고, 저장할때 많이 접한 대화상자가 바로 열기, 저장 대화상자다. 이들 대화상자는 사용자와의 소통을 위해 필수불가결한 요소이니 이번 기회에 제대로 알아보자. 이번 강좌에서는 간단한 텍스트편집기를 만들 계획이다.

폼에 OpenFileDialog 1개, 버튼 1개, 텍스트박스 1개를 아래와 같이 생성하자.

Type Name Text
OpenFileDialog DialogOpenFile 해당사항 없음
Button ButtonOpenFile &OpenFile
TextBox TextContent ""
MultiLine = True ScrollBars = Both


텍스트파일을 열면 내용이 텍스트박스로 들어가고, 저장하면 텍스트박스의 내용을 파일로 저장하는 간단한 앱이다.

1. 파일 열기

Private Sub ButtonFileDialog_Click(sender As Object, e As EventArgs) Handles ButtonOpenFile.Click

    DialogOpenFile.InitialDirectory = Application.StartupPath & "\"
    DialogOpenFile.Title = "불러오기"
    DialogOpenFile.Filter = "Text Files (*.txt)|*.txt|All files (*.*)|*.*"
    DialogOpenFile.FilterIndex = 1
    DialogOpenFile.RestoreDirectory = True
    DialogOpenFile.FileName = ""
    DialogOpenFile.Multiselect = False

    If DialogOpenFile.ShowDialog() = DialogResult.OK Then
        TextContent.Text = My.Computer.FileSystem.ReadAllText(DialogOpenFile.FileName, System.Text.Encoding.Default)
    End If

End Sub

ButtonFileDialog 버튼의 Click 이벤트에 위 소스 입력후 실행해서 버튼 클릭시 아래와 같이 나오면 성공

파일 열기 대화상자

이제 OpenFileDialog 대화상자를 상황에 맞게 설정한 각 속성들에 대해서 알아보자.

Line 1 : DialogOpenFile.InitialDirectory = Application.StartupPath & "\"

대화상자가 처음 시작할때 시작폴더를 설정한다. InitialDirectory 속성은 파일을 열때마다 항상 같은 폴더가 열리도록 설정해주는 기능으로 일반적인 상황에서는 잘 사용되지 않는다. 보통은 이전에 열었던 폴더가 열리게 하는데 이 옵션은 아래쪽에 있다. 이 기능은 설명을 위해 넣었지만 보통은 사용하지 않는 기능이다.

Line 2 : DialogOpenFile.Title = "불러오기"

대화상자의 창 제목을 설정한다. 화면의 좌상단 제목에 넣을 문자열을 설정하게 된다.

Line 3 : DialogOpenFile.Filter = "Text Files (*.txt)|*.txt|All files (*.*)|*.*"

파일을 열때 적용할 필터를 설정한다. 이 예제에서는 텍스트파일을 열기 때문에 이와 같이 설정했고, 실행시 화면 우하단에 목록으로 나오게 된다. 구분자로 | 를 사용하며, 1번이름|1번형식|2번이름|2번형식|3번이름|3번형식으로 설정하면 된다.

Line 4 : DialogOpenFile.FilterIndex = 1

위 Line3의 필터에서 기본값을 설정한다. 희한한건 이름이 Index인데 0이 아닌 1부터 시작한다는 것이다. 이 값을 2로 설정후 대화상자를 열면 2번째 항목인 *.* 필터를 기본값으로 열리게 된다.

Line 5 : DialogOpenFile.RestoreDirectory = True

대화상자를 한번 열어서 파일을 연 후에 다시 대화상자를 열면 기존 폴더를 기억했다가 보여주는 속성이다. 위 Line 1의 InitialDirectory를 설정하면 이 속성은 무시되고 항상 초기폴더가 열린다.

Line 6 : DialogOpenFile.FileName = ""

대화상자가 열릴때 파일명 란에 들어갈 텍스트를 설정한다. 항상 같은 파일을 열 경우에는 해당 파일명을 넣어주면 된다.

Line 7 : DialogOpenFile.Multiselect = False

대화상자에서 Ctrl이나 Shift를 사용해서 여러 파일을 동시에 선택할수 있도록 설정하는 속성이다.

Line 8 : If DialogOpenFile.ShowDialog() = DialogResult.OK Then

ShowDialog 함수를 호출하면 대화상자가 Modal창으로 열리며, 지난 강좌의 메시지박스와 마찬가지로 DialogResult형의 반환값을 받아서 확인버튼을 눌렀을때만 처리하면 된다.

 

Line 9 : TextContent.Text = My.Computer.FileSystem.ReadAllText(DialogOpenFile.FileName, System.Text.Encoding.Default)

사용자가 선택한 경로를 포함한 파일명이 DialogOpenFile.FileName 변수로 전달되며 이 텍스트파일을 열어서 텍스트상자에 뿌려준다. 인코딩형식은 파일에 맞춰서 적당히 작성해주면 된다.

이렇게 파일열기 대화상자 사용법에 대해서 알아봤다. 다음 강좌에서는 파일저장 대화상자에 대해 알아보자.

반응형