.NET/Winforms (10) 썸네일형 리스트형 [WINFORMS] DB Data Type 과 Text control 글자수 일치 DB Data Type 과 Text control 글자수 일치 DB 에는 각 컬럼에 따라 DATA TYPE 을 설정한다 (INT, NVARCHAR(50), .ETC) Text control 에서 string 길이 를 DB 와 일치시켜주기 위한작업이 필요하다. 단순 Length 로 만 처리하는것은 잘못된 방법이다. 왜냐하면 언어에 따라 기본적으로 차지하는 Byte 수가 다르기 때문이다. #1 만약 DB 특정 컬럼이 NVARCHAR(50) 으로 설정되어 있는경우 해당 텍스트를 DB 에 설정된 Encoding 스타일에 따라 해당 문자열을 변환한다. string userInput = textBox.Text; // Get the text from the TextBox // Specify the encoding (.. [WINFORMS] ComboBox Control data bind ComboBox Control Drop down 형태의 기본 컨트롤 Design 영역에서 직접 데이터를 삽입하는 방법도 있으나 Dictionary 를 이용해 KEY - VALUE 형태로 관리하는 방법을 서술한다. 1. Dictionary 생성 Dictionary dict = new Dictionary { { 1, "OK" }, { 2, "NG" } }; 2. KeyValuePairs 객채로 변환 List listData = dict.ToList(); 3. 데이터 바인딩 comboBox.DataSource = new BindingSource(listData, null); comboBox.DisplayMember = "Value"; // Display the value (string) in the Combo.. [WINFORMS] create controls (dynamic) Create Controls 원하는 Control 을 생성한다. 속성, 위치 값을 지정한다. 들어가고자 하는 부모 Control 에 추가한다. Label label = new Label(); panel1.Controls.Add(label); // 삽입 위치 지정 x, y 값 지정 (좌측 상단점을 기준으로) label.Location = new Point(10, 10); // 기존에 존재하는 label 을 바탕으로 label.Location = new Point(labelOrigin.Right + 16, labelOrigin.Bottom); 사이즈 지정 사이즈를 지정하지 않으면 본래 크기 때문에 원하는 곳에 위치하지 않게 될 수 있다. label.Size = new Size(width, height); l.. [WINFORMS][DevExpress] GridControl - Focused Row (DevExpress) GridControl - Focused Row GirdControl 테이블 사용시 특정 row에 대하여 추가 수정 삭제 (후 테이블 갱신) 이벤트 발생 시 Selected Row 가 변하는 현상이 발생한다. 이를 그대로 방치하면 UX 를 떨어트린다. 특정 Row 로 Focus 이동 gridView1.FocusedRowHandle = 5; UPDATE 후 선택된 Row 의 Focus 유지 text 이름과 일치하는 column 을 찾아 연결시킨다. gridView1.FocusedRowHandle = gridView1.LocateByDisplayText(0, gridView1.Columns["columnName"], txtColumnName.Text); 포커스 해제 (FocusInval.. [WINFORMS][DevExpress] GridControl - GirdView.ColumnFilterChanged 컬럼 필터 이벤트 (DevExpress) GirdView.ColumnFilterChanged GridControl 안에 존재하는 GirdView filter 영역에 이벤트를 감지하고 싶은 경우 사용한다. 사용법 design 에서 직접 이벤트 추가 코드를 통한 이벤트 바인딩 private void gridView_ColumnFilterChanged(object sender, EventArgs e) { GridView view = sender as GridView; } 특정 컬럼 필터만 감지하고 싶은경우 private void gridView_ColumnFilterChanged(object sender, EventArgs e) { GridView view = sender as GridView; if (view != null .. [WINFORMS] form 데이터 전송 화면 예시 Form1 은 부모, Form2 는 자식 폼 이다. Form1 에서 open 버튼 을 클릭하여 Form2 를 호출한다. Form2 에서 이름과 나이를 입력한 후 submit 버튼 클릭시 데이터를 Form1 으로 전달한다. # 1 delegate 와 event 를 이용한 데이터 전달 자식 폼 에서 delegate 와 event 를 생성 부모 폼 에서 메소드를 생성하고 해당 메소드를 자식 폼 이벤트에 바인딩 한다. 자식 - 부모, 부모 - 자식 양방향 데이터 전달 가능, 양방향 통신을 원한다면 역으로 구현 하면 된다. 상호 데이터 교환이 활발한 경우 추천되는 방식 public partial class Form1 : Form { private Form2 form2; public Form1() { I.. [WINFORMS] Control.ControlCollection 메소드 Control.ControlCollection Control.ControlCollection 클래스는 특정 부모 컨트롤에 대한 자식 컨트롤 목록을 포함한다. 부모 컨트롤에 직접 포함된 모든 컨트롤에 대한 참조를 보유하는 컬렉션 순회를 통해 해당 컨트롤에 있는 자식 컨트롤에 접근이 가능하다. foreach (Control control in this.Controls) { if (control is Button) {} if (control is ComboBox) {} ... } foreach (Control control in this.Controls) { if (control is Button button) // 즉각 button 이라는 변수로 사용가능 {} } Control.ControlCollectio.. [WINFORMS] Tab Control Tab Control Tab Control 은 Tab page 를 포함하고 있다. 선택된 Tab 화면 확인하는 방법 if (tabControl1.SelectedTab == tabControl1.TabPages["tab1"]) { } 화면 전환, 설정 tabControl1.SelectedTab = tabPage2; 페이지 내부 비활성화 텝 메뉴가 비활성화 되는 것이 아닌 내부 컨텐츠가 비활성화 된다. tabPage1.Enabled = false; Tab 제거 tabControl1.TabPages.Remove(tabPage1); Tab change event private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { // Get t.. [WINFORMS] MessageBox validation MessageBox validation Caution 일반적인 경고 표시 MessageBoxIcon 에 따라 보여주는 이미지 설정 if (string.IsNullOrWhiteSpace(text1.Text)) { MessageBox.Show($"Select Item", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Confirm 클릭 이벤트 후 사용자에게 확인을 필요로 할 경우 JS 의 confirm() 처럼 사용하고 싶은 경우 DialogResult 값의 상황에 따라 처리할 수 있다. private void confirmButton_Click(object sender, EventArgs e) { DialogResult.. [WINFORMS] Text validation 윈폼 Text 의 값의 따라 유효성을 검증하는 방법 Text 의 String 값 확인 empty if (textBox1.Text == "") { // Text is an empty string MessageBox.Show("alert"); return; } Null check if (string.IsNullOrEmpty(textBox1.Text)) { // Text is null or empty MessageBox.Show("alert"); return; } Checking all ★ null, empty, whitespace 까지 검증 if (string.IsNullOrWhiteSpace(textBox1.Text)) { // Text is null, empty, or whitespace MessageB.. 이전 1 다음