프로그래밍언어/VB.NET

textbox

부산딸랑이 2013. 1. 24. 06:26

출처 : http://blog.naver.com/jspark916/30029972286

TextBox1, TextBox2, Button1, Button2 를 만든다.
TextBox2의 속성을 다음과 같이 설정한다.

이렇게 하면 여러줄을 입력할 수 있는 창이 된다.
MulriLine = True
ScrolBars = Vertical

[예제1] 간단한 속성들 알아두기

TextBox1.ReadOnly = True '내용을 박스에서 직접 수정하지 못한다. 복사는 가능하다.
TextBox1.Enabled = False '비활성화되어 입력, 복사 등이 불가능하게 된다.
TextBox1.Enabled = True '활성화된다.


TextBox1.Visible = False '박스가 보여진다. TextBox1.Hide()도 같은 기능
TextBox1.Visible = True '박스가 보여지지 않는다. 박스의 내용은 그대로 유지된다. TextBox1.Show()도 같은 기능

TextBox1.MaxLength = 12 '12자 까지만 입력을 허용한다.

TextBox1.BorderStyle = BorderStyle.Fixed3D '박스의 모양을 3차원으로 바꾸어 준다.
TextBox1.BorderStyle = BorderStyle.FixedSingle '박스의 모양을 경계선이 있는 1차원으로 바꾸어 준다.


TextBox1.BorderStyle = BorderStyle.None '박스의 모양을 경계선이 없는 1차원으로 바꾸어 준다.

TextBox1.TextAlign = HorizontalAlignment.Left '문자열 좌측정렬
TextBox1.TextAlign = HorizontalAlignment.Right '문자열 우측정렬
TextBox1.TextAlign = HorizontalAlignment.Center '문자열 중앙정렬

[예제2] 비밀번호 입력용으로 사용하기


TextBox1.PasswordChar = "#" '문자를 입력하면 #만 적힌다. Text의 내용은 기억하고 있다.
TextBox1.Text = "12345"

[예제3] 줄바꿈처리


Dim S As String
S = "동물의 종류" & vbCrLf
S &= "돼지" & vbCrLf
S &= "고양이" & vbCrLf
S &= "거위" & vbCrLf
TextBox2.Text = S

vbCrLf는 내장된 상수로서 [한줄 내린다]에 해당하는 문자이다.

위 코드는 아래 처럼 작성할 수도 있다.

TextBox2.Text = "동물의 종류" & vbCrLf
TextBox2.AppendText("돼지" & vbCrLf)
TextBox2.AppendText("고양이" & vbCrLf)
TextBox2.AppendText("거위" & vbCrLf)

[예제4] 위와 같이 TextBox2에 입력된 상태에서

Button2를 누르면 샛째줄의 값(고양이)이 TextBox1에 적혀지도록 해보자.

TextBox1.Text = TextBox2.Lines(2)

줄번호는 맨첫째중이 [0]에 해당한다.

TextBox2.Lines는 문자열의 1차원 배열변수이므로

배열처럼 취급하여 각종 정보를 처리항 수 있다.

TextBox2의 셋째줄의 내용을 "사슴"으로 바꾸고 싶다면


Dim N As Integer = TextBox2.Lines.GetUpperBound(0) '총 줄수-1
Dim S(N) As String
S = TextBox2.Lines()
S(2) = "사슴":TextBox2.Lines = S

TextBox2.Lines(2) = "기러기"

그냥 TextBox2.Lines(2) = "기러기" 처럼 하면 수정되지 않는다.

돼지/고양이/거위 순으로 표시된 것을 정렬하여 거위/고양이/돼지의 순으로 바꾸려면


Dim N As Integer = TextBox2.Lines.GetUpperBound(0) '총 줄수-1
Dim S(N) As String
S = TextBox2.Lines()
S.Sort(S, 1, 3)
TextBox2.Lines = S

[예제5] 문자열의 선택


텍스트박스에 있는 문자열의 일부를 선택하는 예
TextBox1.Text = "01234567890ABCDEFG"
TextBox1.Select() '초점을 TextBox1으로 이동한다.
TextBox1.Select(5, 3) '5번 글짜 부터 3글짜를 선택한다.

초점이 이동하지 않으면 선택영역이 보여지지 않으므로

필히 TextBox1.Select() 를 빼먹지 말아야 한다.

아래와 같이 순서가 바뀌어도 관계 없다.


TextBox1.Select(5, 3)
TextBox1.Select()

위 코드는 아래처럼 작성할 수도 있다.
TextBox1.Text = "01234567890ABCDEFG"
TextBox1.SelectionStart = 5
TextBox1.SelectionLength = 3
TextBox1.Select()

만약 문자열 모두를 선택하고 싶다면
TextBox1.Text = "01234567890ABCDEFG"
TextBox1.SelectAll()

TextBox1에 있는 문자열의 일부를 선택하고 Button2을 누르면

그 내용이 TextBox2에 적혀지도록 해보자.


TextBox2.Text = TextBox1.SelectedText

[예제6] 복사/붙여넣기


텍스트 박스에 커저가 있는 상태에서 마우스의 오른쪽 버튼을 누르면 메뉴가 보여지고

여기서 복사, 붙여넣기, 삭제등의 작업을 할 수 있다.

이런 메뉴를 [팝업메뉴]라고 부른다.

Button1을 누르면 TextBox2에서 선택한 내용이 복사되고

Button2를 누르면 TextBox2의 커져위치 또는 선택한 부분에 복사했던

내용이 붙여넣기되는 코드를 만들어 보자.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
TextBox2.Copy()
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button2.Click
TextBox2.Paste()
End Sub

아주 간단하게 에디터 기능을 부여할 수 있다.

복사대신 잘라내기를 하려면 TextBox2.Cut() 을 사용하면 된다.

공부삼아서 위의 코드를 더 복잡하게 처리해 보자.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim S As String = TextBox2.SelectedText
Clipboard.SetDataObject(S)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button2.Click
TextBox2.Paste()
End Sub

또는

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Dim S As String = TextBox2.SelectedText
Clipboard.SetDataObject(S)
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button2.Click
Dim S As String = Clipboard.GetDataObject.GetData("System.String")
TextBox2.SelectedText = S
End Sub

위의 코드에서 GetData("System.String")은 클립보드에 있는 데이터중 문자열 데이터를 가져온다는 의미이다.

[예제7] 한영 입력모드의 지정


프로그램을 실행시키면 텍스트박스의 초기 입력모드는 영문이 된다.

그러나 한글로 입력할 것이 뻔한데도 그냥 두는 것은 못마땅하다.

아래와 같이 하면 TextBox1의 초기 입력모드를 한글로 지정해 주고 있다.

물론 나중에 한/영 변환은 가능하다.

아래 프로시져는 폼이 맨처음 로드될 때 실행되는 것으로서 폼을 클릭하면 만들어 진다.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
TextBox1.ImeMode = ImeMode.Hangul
TextBox2.ImeMode = ImeMode.Alpha
End Sub

'프로그래밍언어 > VB.NET' 카테고리의 다른 글

G메일보내기  (0) 2013.01.29
정규식정리  (0) 2013.01.26
문자열 변수 vb.net 기초  (0) 2013.01.24
16↔32컬러만 바로 변경  (0) 2013.01.24
Html소스 받아오기  (0) 2013.01.24