반응형
    
    
    
  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 |