본문 바로가기

전체 글

(65)
[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 ..
[C#] (delegate) Action & Func & Predicate Action & Func & Predicate delegate 를 더욱 간편하게 표현 하는 방법 콜백 메커니즘, 이벤트 처리 및 메서드 인수로 전달 동작에 사용된다 최대 16 인자를 가진 제네릭 표현 람다식도 참조 할 수 있다. Action 반환 값이 없는 형태의 delegate 표현 void static void Main(string[] args) { Action actionEcho = Echo; Action actionAdd = Add; actionEcho(); actionAdd(1, 2); } public static void Echo() { Console.WriteLine("Hello"); } public static void Add(int x, int y) { Console.WriteLine(x..
[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..
[C#] delegate delegate 메소드를 값으로 표현하기 위한 문법 C++의 함수 포인터 delegate int DelegateFunc(int x, int y); public int Add(int x, int y) { return x + y; } DelegateFunc delFunc; // 여러가지 방법의 메서드 참조, 아래의 방법중 하나를 선택 delFunc = new DelegateFunc(Add); delFunc = Add; // C# 2.0 이상 delFunc += Add; 아래의 2 구문은 당연하게도 동일한 결과를 리턴한다. Add(3, 4); // 원본 메소드 delFunc(3, 4); // 델리게이트 delegate chaining delegate 에 여러 개의 메소드를 참조 할 수 있다. -= 를 통해 메..
[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..
[JAVASCRIPT] try-catch 에러 전파 Error 발생 자바스크립트 런타임 도중 에러가 발생할 경우 실행이 중지된다. 따라서 에러를 받아주기 위해 try - catch 로 예외처리를 한다. 스택의 아래방향으로 계속해서 에러를 전파한다. 단 문법적인 에러는 try catch 로 처리할수 없다. new Error("에러"); // 에러를 발생시킨것이 아닌 에러객체를 생성했기 때문에 런타임이 중지되지 않는다. throw new Error("에러"); // 이 밑에 코드들은 실행이 중지된다. (Node 기준) 일반적인 try-catch 예외처리 function A (){ try { B(); }catch(e){ console.log("A 가 잡음") } } function B () { try{ throw new Error("에러임"); }catch(e..
[JAVASCRIPT] isNaN 검사 isNaN NaN 타입 확인시 사용하는 메소드 typeof 로는 number 로 리턴됨 isNaN(NaN) // true isNaN(parseFloat("geoff")) // true typeof NaN // 'number' Reference How do you check that a number is NaN in JavaScript? I’ve only been trying it in Firefox’s JavaScript console, but neither of the following statements return true: parseFloat('geoff') == NaN; parseFloat('geoff') == Number.NaN; stackoverflow.com There might be in..
[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..
[MSSQL] STUFF STUFF 문자열에 글자를 치환하고 싶은 경우 사용한다. STUFF (string_expression, start, length, replacement_expression) string_expression : 원본 문자열 start : 변경될 문자의 시작위치 length : 변경될 길이 수 replacement_expression : 새로운 문자열 # 1 SELECT STUFF('Hello, world!', 7, 5, 'there') Hello, there! # 2 SELECT STUFF('1234567890', 6, 0, '-') 12345-67890 # 3 SELECT Name, STUFF(Name, CHARINDEX(' ', Name), LEN(Name), '') AS FirstName FROM E..
[C#] ref & out ref ref를 사용하여 매개 변수를 참조로 전달할 때 메소드가 원래 변수의 값을 직접 수정할 수 있도록 허용한다. 메소드 내부의 매개 변수에 대한 변경 사항이 원래 변수에 영향을 미친다는 것을 의미한다. 외부의 변수의 값은 변경하려는 경우 void ModifyValue(ref int value) { value = 42; } int number = 10; ModifyValue(ref number); Console.WriteLine(number); // Output: 42 out ref 키워드와 유사하나, 파라미터로 넘기기 전에 변수 값의 초기화가 필요하지 않다. 매서드 내부에서 생성된 값을 반환하려는 경우 void GetValues(out int x, out int y) { x = 10; y = 20; ..