본문 바로가기

devExpress11

 

SQLite Primary Key 컬럼의 정수형 값을 사용시 오류 발생 SQLite3의 rowID는 Int64, Long 형식을 사용한다. DevExpress의 LookUpEdit 데이터 바인딩을 SQLite DataTable로 연결했을 때, lookUpEdit.EditValue에 정수값을 대입하면 Null이 유지되거나, ThrowExceptionOnInvalidLookUpEditValueType 옵션이 True일 때 형식이 다르다는 예외가 발생한다. 해결하려면, 대입하려는 값을 Int64(또는 long) 형식으로 바꾸면 된다. lookUpEdit.EditValue = 1; // 오류 lookUpEdit.EditValue = (long)1; // 정상 lookUpEdit.EditValue = ConvertToInt64(1); // 정상 2023. 5. 3.
C# DevExpress, ComboBoxEdit Item에 배경색 지정하기 C# 가계부에서 거래별로 색상을 지정하는 기능은 거래를 등록할 때 설정할 수 있다. 버튼으로 색상을 선택하는 방법도 있지만, 8가지만 사용하게 되어있으므로 콤보박스를 사용해본다. void Form_Load(object sender, EventArgs e) { comboBoxEdit1.Properties.Items.Clear(); comboBoxEdit1.Properties.Items.AddRange(new string[] { " ", " ", " ", " ", " ", " ", " ", " " }); } private void comboBoxEdit1_DrawItem(object sender, ListBoxDrawItemEventArgs e) { Color userColor = e.Index switch.. 2023. 5. 1.
C# DevExpress Grid 행 색상 지정 MMEX의 거래 테이블에서 색상 지정된 레코드는 행의 배경을 색으로 보여준다. 이렇게 보여주는 것을 C# DevExpress Grid에서 따라해보자. GridView 에서 RowStyle 이벤트를 사용한다. private void gridView1_RowStyle(object sender, RowStyleEventArgs e) { GridView view = sender as GridView; if(e.RowHandle >= 0) { int followUpID = view.GetRowCellDisplayText(e.RowHandle, view.Columns["FOLLOWUPID"]).ToInt(); Color userColor = followUpID switch { 1 => Color.FromArgb(2.. 2023. 5. 1.
C#, OLEDB 트랜잭션 업데이트 코드 일부 개발 환경 DB: Access DB 접속자: OLEDB DB 처리 과정을 거꾸로 추적해본다. 여러 Form에서 공통되는 기능은 별도의 메서드로 분리하였다. SQL Update 최종 호출 메서드 ... public static OleDbConnection DBConn; public static string DBCONNECT_STRING => string.Concat(new string[] { "Provider=Microsoft.ACE.OLEDB.12.0", $";Jet OLEDB:Database Password={SQL_Password}", $@";Data Source=""{SQL_Database}"";" }); ... public static int ExecuteNonQuery(string cmdSqls.. 2023. 4. 13.
C# DevExpress Grid - 선택 행, 스크롤 위치 저장 및 복구 선택된 행 위치에 포커스 유지 int topRowIndex; int focusedRowHandle; // 위치 백업 void gridView1_클릭이벤트() { topRowIndex = gridView1.TopRowIndex; focusedRowHandle = gridView1.FocusedRowHandle; } // 위치 복구 void gridView1_포커스복구() { gridView1.FocusedRowHandle = focusedRowHandle; gridView1.TopRowIndex = topRowIndex; } FocusedRowChanged 이벤트로 포커스를 백업하고 복구하면 안 된다. 왜냐하면 저장할 때도 이벤트가 발생하고, 복구할 때도 이벤트가 발생하기 때문. 클릭, 더블클릭 등 사용자.. 2023. 4. 7.
C# DevExpress Grid - 셀에 버튼, 컨트롤 개체 추가하기 셀에 위 그림처럼 버튼을 추가하기 컨트롤 개체 추가 디자인 탭에서 Grid의 Run Designer를 실행한다. Column 탭에서 버튼을 추가할 Column을 만들고, ColumnEdit에서 New 항목에서 넣고 싶은 컨트롤을 선택한다. repositoryItem 접두사 이름을 가진 개체가 추가된다. 그다음 ColumnEdit.Buttons 항목에서 ... 버튼을 누르면 아이템을 추가할 수 있는 창이 나타난다. SuperTip은 HTML 팁이다. 버튼 구분 셀에는 여러 개체를 추가할 수 있으므로 이벤트를 처리할 때 어떤 개체인지 구분할 필요가 있다. 자주 사용하는 항목은 Kind 속성으로 구분할 수 있으며, Kind에 없는 유형은 Tag에 값을 넣어서 구분할 수 있다. 이벤트 할당 버튼 클릭 이벤트 사.. 2023. 4. 7.
DevExpress Universal 22.2 DevExpress Universal 22.2 버전이 풀렸다. 설치 필요한 것만 선택하고 Next CodeRush는 필수 선택~ 키젠 패치 프로그램은 동일하다. DevExpress 버전과 Visual Studio 버전을 선택 후 Patch 버튼을 누르면 된다. 패치 전, VS와 관련된 프로세스는 모두 종료되어야 하며, DevExpress를 업데이트 할 때마다 Patch를 해야 한다. DevExpress 설치 후, Visual Studio 2022를 처음 실행할 때는 IDE 화면에서 멈춰버린 것처럼 보이지만 끝까지 기다리면 실행이 완료 된다. DE와 VS가 짝짜꿍할 시간이 필요한 것이다. 이 후 실행부터는 정상 동작한다. 2023. 2. 22.
C#, DevExpress GridView 가로 스크롤을 오른쪽으로 이동하기 가계부를 만들면서 필요한 기능을 기록합니다. GridView 컨트롤의 가로 스크롤을 자동 이동하기 아래 처럼 여러개의 컬럼을 가진 폭이 긴~ 그리드가 있습니다. 그리드의 Form 사이즈를 변경하면 가로 스크롤이 왼쪽에 위치하면서 오른쪽의 컬럼이 보이지 않게 됩니다. 고정시킨 컬럼(거래일자, 계정) 또한 위치가 변하지 않습니다. 그럼 다시 스크롤을 오른쪽으로 변경시켜야 하는 귀차니즘 이벤트가 발생합니다. 😫 아래처럼 자동으로 스크롤을 오른쪽으로 이동시키고 싶다면? 크기가 변할 때마다 설정한 컬럼을 보여줍니다. 고정으로 설정된 컬럼은 왼쪽에 항시 표시 됩니다. 코드 void gridControl1_SizeChanged(object sender, EventArgs e) { gridView1.MakeColumn.. 2022. 11. 11.
C# DevExpress GridView FooterCell 숫자 꾸미기 Grid의 Footer Cell은 디자인 타임에 Appearance 설정이 되지 않는다. 런타임에 CustomDrawFooterCell 이벤트를 사용하면 원하는 대로 꾸밀 수 있다. FooterCell이 그려지기 전에 이벤트가 발생한다. private void gridView1_CustomDrawFooterCell(object sender, FooterCellCustomDrawEventArgs e) { if (string.Compare(e.Column.FieldName, "수입") == 0) { e.Appearance.ForeColor = Color.Blue; e.Appearance.Font = new Font(AppearanceObject.DefaultFont, FontStyle.Bold); e.Pai.. 2022. 9. 15.