반응형
1. 체크박스(CheckBox)로 사용시 SelectionChanged to MouseDown 변경처리
- 기존 GridView에 체크박스를 추가해서 행(Row)을 선택하는 기능을 사용할 경우 SelectionChanged 기능이 먹히질 않아 다른 방법을 찾다가 응용을 해 보았습니다.
<자세한 설명 링크>
[GridView] 체크박스(CheckBox)로 행(Row) 선택하기
GridView에서 조회를 한후 읽기전용에서 체크박스를 넣어 여러행 선택하기를 해보겠습니다. ( 항상 MultiSelect 옵션은 true로 변경해야 함 ) // DataGrid 초기화 dgViewMaster.OptionsSelection.MultiSelect = true; dgView
www.whodo.net
위 사항을 처리하고 행 선택시 SelectionChanged 기능이 먹히질 않아 찾아 보았는데 focusChanged를 사용하라고하는데 저는 먹히지 않았습니다.
고민하다 마우스 클릭(MouseDown(object sender, MouseEventArgs e)) 를 사용해서 해결되었습니다.
- 소스 (1) 부분을 참고해서 보시고 아래는 무시하셔도 됩니다.
- 아래 소스는 마우스 클릭시 상세내역을 그룹화하여 보여주시는 기능도 포함되어 있습니다.
private void dgViewMaster_MouseDown(object sender, MouseEventArgs e)
{
// 1. 시작 --------------------------------- //
GridHitInfo ghi = dgViewMaster.CalcHitInfo(e.Location);
if (!ghi.InRow) { return; }
messageSendShow("Current Row = " + ghi.RowHandle.ToString() + " / " + dgViewMaster.RowCount.ToString());
// 선택한 Row의 데이터를 가져온다.
DataRow row = dgViewMaster.GetDataRow(ghi.RowHandle);
// 1. 끝 --------------------------------- //
//Cursor = Cursors.WaitCursor;
SplashScreenManager.ShowForm(typeof(waitScreenForm));
string query = "select 문";
object[] param = { 매개변수 };
sqlDBHelper.Init();
DataTable retData = sqlDBHelper.executeQuery(query, param);
dgDetailData.DataSource = retData;
if (dgDetailView.RowCount > 0)
{
// Grid View Font 굴림체, 9.75pt
dgDetailView.ClearGrouping();
dgDetailView.Appearance.HeaderPanel.Font = new System.Drawing.Font("굴림체", 9.75f);
dgDetailView.Appearance.GroupPanel.Font = new System.Drawing.Font("굴림체", 9.75f);
dgDetailView.Appearance.GroupRow.Font = new System.Drawing.Font("굴림체", 9.75f);
dgDetailView.Appearance.Row.Font = new System.Drawing.Font("굴림체", 9.75f);
dgDetailView.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
// Header Title Name
dgDetailView.Columns[0].Caption = "2차";
dgDetailView.Columns[0].Width = 100;
dgDetailView.Columns[1].Caption = "1차";
dgDetailView.Columns[1].Width = 100;
dgDetailView.Columns[2].Caption = "종류";
dgDetailView.Columns[2].Width = 100;
if (retData.Rows[0][0].ToString().Equals("*"))
{
dgDetailView.Columns[0].Visible = false;
dgDetailView.Columns[0].GroupIndex = 0;
dgDetailView.Columns[0].SortIndex = 0;
dgDetailView.Columns[0].SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
}
else
{
dgDetailView.Columns[0].GroupIndex = 0;
dgDetailView.Columns[0].SortIndex = 0;
dgDetailView.Columns[0].SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
dgDetailView.Columns[1].GroupIndex = 1;
dgDetailView.Columns[1].SortIndex = 1;
dgDetailView.Columns[1].SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;
}
dgDetailView.OptionsView.ShowGroupedColumns = false;
dgDetailView.OptionsView.GroupDrawMode = GroupDrawMode.Standard;
dgDetailView.OptionsMenu.ShowGroupSummaryEditorItem = true;
// Group Count 표시
GridGroupSummaryItem item = new GridGroupSummaryItem();
item.FieldName = "gpCount";
item.SummaryType = DevExpress.Data.SummaryItemType.Count;
dgDetailView.GroupSummary.Clear();
dgDetailView.GroupSummary.Add(item);
//dgDetailView.ExpandAllGroups();
}
//Cursor = Cursors.Default;
SplashScreenManager.CloseForm();
}
반응형
'개발(IT) > DevExpress(WinForm)' 카테고리의 다른 글
DevExpress Form Skins(스킨) 변경하기 저장하고 불러오기 (0) | 2023.11.24 |
---|---|
DevExpress(WinForm) Layout 저장/불러오기 (0) | 2023.11.04 |
[GridView] GridView 파일저장 - 엑셀(xlsx) (1) | 2023.10.18 |
[GridView] AdvBandedGridView Multi Line(멀티라인) 표시 (0) | 2023.09.28 |
[GridView] GridView에서 AdvBandedGridView Script 변환 (0) | 2023.09.28 |