
그리드뷰에서 자동크기 설정 DevExpress GridView에서 칼럼의 크기를 자동으로 조절되도록할 수 있다. 기본으로 칼럼을 생성하면 width=75 사이즈로 되어있는데 실제 컴파일해보면 크기는 반영되지 않는다. 그 이유는 기본적으로 gridview의 OptionsView -> ColumnAutoWidth = true 옵션으로 되어있기 때문이다. true로 되어있는 경우 칼럼별 width 사이즈는 무시하고 Layout에서 설정해놓은 칼럼의 사이즈 비율에 따라서 화면에 출력된다. 현재 Layout에서 아이디 칼럼의 비율이 15% 정도 된다면, 컴파일 후 화면에 출력되는 그리드 전체 사이즈 중 15% 비율로 아이디 칼럼이 출력된다. 그리드뷰 사이즈가 줄면 칼럼 사이즈도 줄고 그리드 사이즈가 커지면 칼럼 ..

DevExpress GridView 컨트롤에서 칼럼 별로 필터기능이 제공된다. Grid Designer에 들어가서 Views -> GridView1 -> OptionsView -> ShowAutoFilterRow = true 옵션으로 변경해주면 된다. DevExpress Gridview 칼럼 필터 추가 1. Run Desinger 클릭 2. Views -> gridView1 클릭 3. OptionsView -> ShowAutoFilterRow = true 선택 4. UI에서 보면 칼럼 아래에 Filter Row가 추가된 것을 확인할 수 있다. 5. Filter에 값을 넣어서 원하는 데이터를 확인할 수 있다. 이름에 "워랜" 이라고 검색하면 "워랜"으로 시작하는 모든 Row가 검색된다. 주소에 "*한국동"..

Devexpress에서는 LayoutControl를 사용해서 컨트롤을 자동정렬할 수 있다. 자동정렬을 사용하지 않을 경우 UI를 디자인하는데 상당한 시간이 소요된다. Form에 LayoutControl을 올리고 그 이후에 button, textedit 등을 드래그, 드랍으로 옮기면 간편하게 원하는대로 디자인할 수 있다. button, textedit 좌측 상단에 정렬 1. Form 생성 후 LayoutControl 을 Form위에 올린다. 2. LayoutControl 범위를 Form 전체로 변경해서 Form 전체에 LayoutControl 적용 None -> Fill 로 옵션이 변경되면서 Form 전체에 적용된다. 3. Form 전체에 LayoutControl을 감쌌기 때문에 Form에 올리면 자동으로..

Xamarin에서 클릭 이벤트가 제공되지 않는 컨트롤에 이벤트를 만들어서 추가할 수 있다. 클릭 이벤트가 존재하지 않는 StackLayout 2개를 만들어서 해당 StackLayout이 클릭될 때 메시지를 출력해 보도록 하겠다. StackLayout에 클릭 이벤트 추가 예제 TapGestureRecognizer tap = new TapGestureRecognizer(); // 탭제스쳐 선언 tap.Tapped += Tap_Tapped; // 탭제스쳐에 탭 이벤트 추가 stack1Layout.GestureRecognizers.Add(tap); // stack1layout에 생성한 제스쳐 추가 stack2Layout.GestureRecognizers.Add(tap); // stack2layout에 생성한 제..

DateTime을 사용해서 날짜 및 시간 차이를 구할 수 있다. 먼저 날짜 차이를 구할 DateTime 2개를 만들고 TimeSpan으로 2 날짜 간의 차이를 구하면 된다. 예제로 내 생일이 얼마나 남았는지 계산해 보도록 하겠다. 날짜 차이 구하기 예제 DateTime currDate = DateTime.Now; // 현재 일자 DateTime birthDate = new DateTime(2023, 12, 14); // 생일 일자 TimeSpan? timeDiff = birthDate.Date - currDate.Date; // 생일일자 - 현재일자 int dayDiff = timeDiff.Value.Days; // 남은 일자 299 1. DateTime currDate = DateTime.Now; cu..

C# 특정 자릿수 문자 추가 하나씩 증가되는 문서번호를 여러 자릿수로 만들거나, sub 번호를 4자리로 만드는 등 특정 자릿수에 특정 문자를 추가할 경우 PadLeft, PadRight 등을 사용해서 구현할 수 있다. 예를 들어 subNo라는 칼럼에 0001, 0002, 0003, 0004... 등으로 순차 증가되는 문자를 넣어줘야한다고 가정하자. 이럴 경우 아래 2가지 조건을 만족해야 한다. 1. 숫자가 1씩 증가해야 한다. 2. 자릿수는 4자리를 유지해야 한다. PadLeft를 사용하지 않은 예제 PadLeft를 사용하지 않고 조금 무식하게 만든 예제이다. 이렇게 해도 0001~9999 까지 순차적으로 값을 생성할 수 있지만 코드 가독성도 좋지않고 간단한 로직인데도 복잡하다. for(int i = 1..

TextField 컴포넌트 onKeyPress 함수를 사용해서 엔터키 이벤트를 발생시킬 수 있다. 로그인 정보를 입력하거나 특정 정보를 입력 후 버튼 클릭을 별도로 하지 않고 엔터키를 입력해서 이벤트를 처리할 때 사용하면 된다. TextField 엔터키 이벤트 예제 {if(e.key === 'Enter') {onSubmit();}}} /> 1. TextField 컴포넌트에 onKeyPress 이벤트 함수를 생성 2. KeyPress 이벤트를 (e) 로 받아서 e.Key 값이 Enter 인 경우 3. onSubmit 함수를 실행

Xamarin 뒤로가기 프로그램 종료 앱에서 뒤로 가기 버튼을 눌러서 프로그램을 종료시키는 경우가 많다. 만약 가장 첫 페이지에서 뒤로 가기 버튼을 눌렀는데 별도로 종료하는 기능을 넣어주지 않으면 앱은 종료된 것처럼 화면에서 사라지는데 실제로 프로그램은 종료되지 않은 상태로 남아있게 된다. 뒤로 가기 버튼을 1초 안에 2번 누르면 종료되도록 예제를 만들어 보려고 한다. 뒤로가기 종료 예제 1. 뒤로가기 버튼을 누를 경우 orverride 된 OnBackPressed() 이벤트 함수로 받을 수 있다. 2. MakeText를 사용해서 "한 번 더 누르면 종료됩니다" 메시지를 출력 3. 그리고 현재 시간을 함수 밖에서 저장(초기화되지 않도록 하기 위함) 4. 다시 뒤로가기 버튼을 누르면 첫 번째 뒤로 가기 했..