오늘은 MsgBox에 대해서 보다 심도있는 내용을 올려봅니다.
결과를 먼저 볼까요?

사용자 삽입 이미지
폼 1개, Button1, button2, Text1 박스 한 개를 이용해서 만들어 보았습니다.
각각의 Button컨트롤을 누르면 메시지 박스가 뜨도록 처리하였는데요.

먼저 Button1을 누르면
사용자 삽입 이미지
코드는
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim msg, button, title '메시지 박스 인수들에 넣어줄 변수 선언
        msg = "첫번째 테스트입니다. 줄을 바꿔볼까요?" & Chr(10) & "줄이 바뀌었네!!"
        button = vbYesNoCancel + vbInformation
        title = "메시지박스 첫번째 테스트"
        MsgBox(msg, button, title)

End Sub


두번째 버튼을 클릭하면

사용자 삽입 이미지
코드는
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim msg, button, title, response
        msg = "두번째 테스트입니다." & Chr(10) & "프로그래밍 배우기가 쉬운가요?
                   아니면 어려운가요?"
        button = vbYesNo + vbInformation
        title = "메시지박스 두번째 테스트"

        response = MsgBox(msg, button, title) '메시지 박스에서 버튼클릭결과를 받기 위함

        '메시지박스 결과에 따른 후속처리 요청하는 부분
        '이런 식으로 메시지 박스 선택한 것에 따라 DB에 데이터를 저장,삭제,조회 등
        '원하는 작업을 처리할 수 있도록 한다.
        If response = MsgBoxResult.Yes Then
            TextBox1.Text = "프로그래밍 고수가 될 소질이 있으시군요."
        Else
            TextBox1.Text = "열심히 하다보면 고수가 될 수 있을 겁니다."
        End If
End Sub

그냥 봐서는 모르겠지요.
자세히 알아 볼까요?

MsgBox 함수 정의
Public Function MsgBox( _

   ByVal Prompt As Object, _

   Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OKOnly, _

   Optional ByVal Title As Object = Nothing _

) As MsgBoxResult


Buttons 인수에 사용되는 상수

사용자 삽입 이미지
Title 인수는 메시지 박스의 타이틀을 나타냄

MsgBox 결과 상수(vB6.0 과 비교하여)
사용자 삽입 이미지

마지막으로 Chr(10)은 무엇인지 궁금할텐데요. 줄바꾸기를 해주는 겁니다.
그럼 그림으로 이해를 해볼까요?
사용자 삽입 이미지

이해가 되시는지요? 시간나실 때 직접 위와 같은 코드를 입력해 보시고 상수들도 변경해서 해보시고 자신만의 처리루틴을 만들어서 메시지박스 결과에 따라서
후속 작업을 해보도록 하는 것은 어떨까요?
그럼 오늘은 이정도로 마치겠습니다.

Posted by 원철연(체르니)
,

벌써 4번째 시간이군요.

오늘은 유용하게 사용할 수 있는 리스트박스와 콤보박스를 이용해서 제가 작년에
다녀온 우한보기 프로그램을 간단히 만들어 보았습니다.

따라하다보면 기본적인 사용법을 쉽게 익힐 수 있을 겁니다.
그럼 시작해 볼까요?

결과물을 먼저 볼까요?

1. 리스트박스에 선택했을 때 결과

사용자 삽입 이미지

2. 콤보박스에 선택했을 때의 결과
사용자 삽입 이미지

어떤 가요?  너무 쉬운가요?
이제 세부적인 부분을 한 번 알아 봅니다.

사용된 폼 컨트롤 속성정보
사용자 삽입 이미지

자 이제 코드를 입력해 볼까요?

먼저 리스트박스와 콤보박스에 선택할 수 있는 아이템을 등록해야 되겠지요.?
이것은 Form1_Load 이벤트에서 해주면 됩니다.


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

        '폼이 로드될 때 리스트박스와 콤보박스 초기화
        '리스트박스에 아이템 정의
        ListBox1.Items.Add("호텔방")
        ListBox1.Items.Add("호텔 앞 전경")
        ListBox1.Items.Add("호텔 옆 전경")
        ListBox1.Items.Add("버스타는 곳")

        '콤보박스에 아이템 정의
        ComboBox1.Items.Add("고금대에서")
        ComboBox1.Items.Add("손문 동상")
        ComboBox1.Items.Add("장강 제 1철교 위에서")
        ComboBox1.Items.Add("황학루")

        '폼의 구분을 위해 폼에 추가했던 Label2, Labe3를 실행시보여주지 않기
        Label2.Visible = False
        Label3.Visible = False

End Sub

다음으로 리스트박스나 콤보박스에서 해당 아이템을 선택하면 픽쳐박스에 보여주도록 하는 부분은 어떻게 하면 될까요?
이것은 ListBox1_SelectedIndexChanged(블라블라), ComboBox1_SelectedIndexChanged(블라블라) 이벤트에서 해주면 됩니다.


- 리스트 박스관련
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

        '리스트박스에서 선택된 것에 따라서 PictureBox2에 그림을 보여주기
        Select Case ListBox1.SelectedIndex
            Case 0
                PictureBox1.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \4성호텔부근\호텔방.jpg")
                MsgBox("호텔방을 선택하셨네요. 4성급 호텔인데 좀 후지죠?")
            Case 1
                PictureBox1.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                   \4성호텔부근\호텔앞 전경.jpg")
                MsgBox("호텔앞 전경을 선택하셨네요. 호텔 앞이 좀 시골틱합니다.")
            Case 2
                PictureBox1.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \4성호텔부근\호텔옆 전경.jpg")
                MsgBox("호텔 옆 전경을 선택하셨네요. 호텔방에서 바라본 전경입니다. 여행사의 상술
                             에 속지말자.")
            Case 3
                PictureBox1.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \4성호텔부근\버스타는 곳.jpg")
                MsgBox("버스타는 곳을 선택하셨군요. 버스비는 1위안, 2위안 2가지 입니다.^^")
        End Select

    End Sub

- 콤보박스관련
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        '콤보박스에서 선택된 것에 따라서 PictureBox2에 그림을 보여주기
        Select Case ComboBox1.SelectedIndex
            Case 0
                PictureBox2.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \관광지\고금대에서.jpg")
                MsgBox("고금대에서를 선택하셨네요. 고금대는 우정과 관련된 역사적인 곳임")
            Case 1
                PictureBox2.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \관광지\손문동상.jpg")
                MsgBox("손문동상을 선택하셨네요.손문은 쑨원이라고도 불리는데 중국의 국부이죠")
            Case 2
                PictureBox2.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \관광지\장강제1철교위에서.jpg")
                MsgBox("장강제1철교위에서를 선택하셨네요. 1킬로미터가 넘는 긴다리입니다.")
            Case 3
                PictureBox2.Image = System.Drawing.Image.FromFile _
                  ("E:\티스토리\무료강좌 및 교육\비주얼 베이직2008\강좌 4 리스트박스와 콤보박스
                    \관광지\황학루.jpg")
                MsgBox("황학루를 선택하셨네요. 황학루, 후베이박물관과 함께 우한의 대표적인 명소지
                              요")
        End Select
End Sub

마지막으로 버튼 컨트롤에서 MsqBox의 조금더 발전된 기능을 넣은 부분
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        MsgBox("본 프로그램이 유용하셨는지요? 유용하셨으면 격려차원에서 댓글도 남겨주시면 감사
                      하겠습니다.", MsgBoxStyle.YesNo)

        '프로그램 끝내기
        End
End Sub

이부분 출력 결과를 보면

사용자 삽입 이미지

이상으로 오늘의 강좌를 마칩니다.
열심히 하나 하나 익히셔서 좋은 프로그램 많이 만들어주세요.

참고로 Form1.vb 파일을 첨부합니다. 참고하세요.^^;;


궁금하신 사항이 있으시면 댓글이나 이메일로 문의를 주세요. 그럼 이만 마칩니다.

Posted by 원철연(체르니)
,
오늘은 폼 디자인하는 법에 대해서 간략하게 다뤄볼까 합니다.

먼저 새로운 프로젝트를 엽니다.
사용자 삽입 이미지















프로젝트명을 MyShopping으로 생성합니다.
생성된 프로젝트에서 Form1.vb를 클릭하여 컨트롤들을 배치합니다.

먼저 폼에 배치한 컨트롤들의 속성들을 다음과 같습니다.
사용자 삽입 이미지

















그러면 배치한 그림을 볼까요?
사용자 삽입 이미지























위 그림에서 폼에 어떻게 그림을 넣었을까 궁금하시진 않은가요? BackGroundImage에서
원하는 그림을 선택해주면 적용이 됩니다.
자신이 직접 포토샾같은 디자인툴로 배경 이미지를 만들어 폼 바탕으로 해서 프로그램을
만들면 괜찮겠죠^^;;

(바탕그림은 d&shop을 캡쳐해서 수정해서 사용했습니다. 혹시라도 문제가 있으시면
 제게 댓글이나 이메일(cywon11@empal.com)으로 주시면 삭제토록 하겠습니다.)

다음으로  GroupBox1, GroupBox2의 바탕을 투명하게 만들어 보겠습니다.
GroupBox의 속성상자에서 변경해주면 되는데요. 아래와 같이 하시면 됩니다.

사용자 삽입 이미지


























Web 탭에서 Transparent(투명한)을 선택해주면 됩니다. 쉽지요?
이렇게 해서 최종적으로 간단하게 만들어 본 화면은 아래와 같습니다.
사용자 삽입 이미지


이상으로 간략하게 폼 디자인을 알아봤습니다.
ListBox와 ComboBox는 BackColor를 투명하게 하는 기능을 지원하지 않고 Button컨트롤은 지원되는데 제가 실력이 달려서 찾지를 못했습니다. 혹시 아시는 분은 댓글 남겨주시면 감사하겠습니다. 그럼 오늘은 이만하지요.
Posted by 원철연(체르니)
,

오늘의 학습내용

1. Label, Button, CheckBox, PictureBox, Group 컨트롤 사용
2. CheckBox
가 선택될 때마다 이미지 보여주고 감추기 기능 배우기
3.
조건문, Form Load시 초기화 해주기


학습순서
1. 새로운 프로젝트를 생성

2. 필요한 컨트롤들을 폼에 배치한다.

3. 각 컨트롤들의 속성 및 폼의 초기화 진행

4. 실행해본다.

 
1. 새로운 프로젝트를 생성

사용자 삽입 이미지















2.
필요한 컨트롤들을 폼에 배치한다.


사용자 삽입 이미지
























3.
각 컨트롤들의 속성 및 폼의 초기화 진행

CheckBox1 관련
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles CheckBox1.CheckedChanged

   '체크박스1이 체크된 상태이면 픽쳐박스1을 화면에 보여주고 그렇지 않으면 보이지
        않게 하라는 조건문

        If CheckBox1.Checked = True Then
            PictureBox1.Image = System.Drawing.Image.FromFile("E:\컴퓨터\Visual Basic
            NET\2008\티스토리에 올릴 강좌\강좌 2\황학루.jpg")
            PictureBox1.Visible = True
        Else
            PictureBox1.Visible = False
        End If
   
End Sub

CheckBox2 관련
    Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles CheckBox1.CheckedChanged

   '체크박스2이 체크된 상태이면 픽쳐박스2을 화면에 보여주고 그렇지 않으면 보이지
        않게 하라는 조건문

        If CheckBox2.Checked = True Then
            PictureBox2.Image = System.Drawing.Image.FromFile("E:\컴퓨터\Visual Basic
            NET\2008\티스토리에 올릴 강좌\강좌 2\하늘위에서.jpg")
            PictureBox2.Visible = True
        Else
            PictureBox2.Visible = False
        End If
   
End Sub

    PictureBox1, PictureBox2 관련
    PicutreBox1.Image 속성에 PictureBox1에 표시할 이미지를 선택해주고
    PicutreBox1.SizeMode는 StretchImage로 해준다.

    Form1 관련
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
     System.EventArgs) Handles MyBase.Load

 
       '폼을 로드할 때 초기화해 줌
        CheckBox1.Checked = True
        CheckBox2.Checked = False

        PictureBox1.Visible = True
        PictureBox2.Visible = True
    End Sub


4. 실행해본다.

사용자 삽입 이미지























[참고] 샘플파일

invalid-file

샘플파일


이상으로 2번째 시간을 마칩니다. 참고로 올린 샘플 프로그램에서
사용된 이미지들은 다른 것으로 변경하여 적용해 보시면 될 듯 합니다.

Posted by 원철연(체르니)
,

비주얼 베이직을 손에서 놓은지 4년이 지났지만 다시 보니 새롭기도 해서
비주얼 스튜디오 2008 + 비스타 환경에서 틈나는대로 올려볼까 합니다.
대상은 당연히 처음시작하는 분들이겠지요^^;;

그 첫번째 시간으로 Hello world와 간단한 자기 생일 표시하는 프로그램을 올려봅니다.

학습내용
1. 컨트롤 익히기 : TextBox, Button, DateTimePicker, Group
2. 간단한 조건문
3. 간단한 함수 : Val, Left, MsgBox
4. 세부사항들은 하나씩 변화를 줘가면서 실행결과를 보면 각 컨트롤에 대해서 이해를
    할 수 있을 겁니다.


자 그럼 시작해 볼까요?

사용자 삽입 이미지


OK 버튼을 누르면

사용자 삽입 이미지

이렇게 하여 HelloWorld라는 프로젝트가 생성되었습니다.

Form1.vb를 클릭하여 아래와 같이 해당 컨트롤들을 위치시키고 각 컨트롤의 Properties를 변경해 줍니다.(이부분은 첨부한 파일을 열어보시면 아실 수 있습니다.^^;;)

최종 폼 디자인은 아래와 같습니다.
사용자 삽입 이미지


자 이제 제대로 동작하기 위해 코드를 작성해 봅니다.

먼저 HelloWorld 그룹의 확인 버튼을 더블 클릭하여 아래와 같이 입력합니다.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = "Hello, world!"
End Sub

그리고 지우기 버튼을 더블 클릭하여 아래와 같이 입력합니다.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'TextBox1의 어떠한 글자가 표시되어 있으면 지우라는 조건문
        If TextBox1.Text <> "" Then
            TextBox1.Text = ""
        End If

        'TextBox1에 지울내용이 없으면 표시하도록 한 것
        If TextBox1.Text = "" Then
            MsgBox("지울내용이 없습니다요..헤헤")
        End If
    End Sub

이렇게 하면 HelloWorld 그룹쪽은 코딩이 끝납니다.

다음으로 생일 보여주기 그룹의 내생일 보여주기를 더블클릭합니다. 그리고 아래와 같이 코딩합니다.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim strDate As String
        Dim strYear As String
        Dim IntYear As Integer
        Dim IntCompYear As Integer


        strDate = DateTimePicker1.Text
        strYear = Microsoft.VisualBasic.Left(strDate, 4) 'Left(문자열, 길이) 왼쪽에서 길이만큼
        잘라낸다. 'VB6.0시절엔 Left(strDate,4)써도 괜찮았는데 그사이 많이 바뀐 듯 하군요
.
        IntYear = Val(strYear)
        IntCompYear = 2008 - IntYear

        '프로그래밍을 할 수 있는 최소 나이는 8살이라고 보고 현재 2008 - 2000을 기준으로 제한을
         둔 조건문
        If IntCompYear <= 8 Then
            MsgBox(IntCompYear & " 살이라니 당신은 컴퓨터 프로그래밍을 하기에는 너무 어린 나이
            에요!. 원래 나이를 입력해주세요.")
            Exit Sub '아래의 코드를 실행하지 말고 이 버튼2클릭을 빠져나가라는 부분 
        End If

        MsgBox("당신의 생일은" & DateTimePicker1.Text)
        MsgBox("그해의 날은" & DateTimePicker1.Value.DayOfYear.ToString())

    End Sub

이렇게 한 후 F5키를 눌러 실행해 보면

사용자 삽입 이미지


Hello world 그룹의 확인 버튼 클릭후
사용자 삽입 이미지


생일보여주기 그룹의 내생일보여주기에서 현재 날짜 상태에서 내생일보여주기 클릭시
(정확한 자신을 생일은 DateTimePicker 컨트롤의 달력모양을 클릭하여 선택할 수 있음)
사용자 삽입 이미지










이상으로 몇 개의 컨트롤과 간단한 조건문, 함수의 사용법을 알아보았음.
이 간단한 프로그램도 여러가지 세부적인 조건들을 구미에 맞게 걸어보시길 바라구.

이 프로그램 정도를 이해할 수 있으면 기본적인 것은 갖춰졌다고 생각합니다.
그럼 오늘은 이정도로 하구 혹시라도 그럼 안녕~

[참고] 소스를 올립니다.

Posted by 원철연(체르니)
,