WinForms용 FlexGrid 2021 v1의 새로운 기능 > 블로그 & Tips

본문 바로가기

ComponentOne

블로그 & Tips

WinForms용 FlexGrid 2021 v1의 새로운 기능

페이지 정보

작성자 GrapeCity 작성일 21-06-14 08:29 조회 274회 댓글 0건

본문

첨부파일

ComponentOne WinForms의 2021 v1 릴리스가 출시되면서 두 가지 새로운 기능인 열 머리글 컨텍스트 메뉴고급 다중 열 정렬이 WinForms API용 FlexGrid에 도입되었습니다. 해당 기능을 통해 최종 사용자는 요구 사항에 따라 C1FlexGrid 데이터를 숨기고 그룹화하며 정렬할 수 있게 되었습니다.

이 문서에서는 해당 기능의 주요 특징과 해당 기능을 통해 사용자 경험을 개선하는 방법에 대해 중점적으로 살펴봅니다.


열 머리글 컨텍스트 메뉴

열 머리글 컨텍스트 메뉴를 사용하면 최종 사용자는 열 머리글을 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴 옵션을 선택해 열을 조작할 수 있습니다. 이 기능을 사용할 수 있도록 C1FlexGrid 컨트롤에서는 C1FlexGridBase 클래스에 ColumnContextMenuEnabled 속성을 제공합니다. 아래 코드를 사용하여 이 속성을 초기화할 수 있습니다.

//Opens the context menu when user performs right click on column header
_flex.ColumnContextMenuEnabled = true;


기본적으로 이 상황에 맞는 메뉴에는 데이터 처리에 사용할 수 있는 다음 옵션이 있습니다.

  • AutoSize: 이 메뉴 옵션은 클릭한 열의 데이터에 따라 열 너비를 조정하는 데 사용됩니다.
  • AutoSizeAllColumns: 이 메뉴 옵션은 모든 열의 데이터에 따라 열 너비를 한 번에 조정하는 데 사용됩니다.
  • GroupByThisColumn: 이 메뉴 옵션은 클릭한 특정 열의 데이터를 기준으로 그룹화를 적용하는 데 사용됩니다. 열 머리글을 마우스 오른쪽 버튼으로 클릭한 다음 런타임에 상황에 맞는 메뉴에서 이 열로 그룹화 옵션을 선택하여 열을 간단하게 그룹화할 수 있습니다.
  • UnGroup: 이 메뉴 옵션은 그리드에서 그룹화를 해제하는 데 사용됩니다.
  • SortAscending/SortDescending: 이 메뉴 옵션은 선택 사항에 따라 특정 열의 데이터를 오름차순 또는 내림차순으로 정렬하는 데 사용됩니다.
  • HideThisColumn: 이 메뉴 옵션은 C1FlexGrid에서 특정 열을 숨기는 데 사용됩니다.

이러한 표준 메뉴 옵션 외에도 고유한 메뉴 옵션을 추가하고 기능을 제어할 수 있습니다. 고유한 메뉴 항목을 추가하려면 C1FlexGridBase 클래스의 ColumnContextMenuOpening 이벤트를 처리하고 ContextMenuStrip 개체의 항목을 해당 이벤트의 ColumnContextMenuOpeningEventArgs에 추가하십시오.

클릭한 항목의 기능을 처리하려면 ContextMenuStrip의 ItemClicked 이벤트를 처리하고 특정 항목의 작업에 대한 ClickedItem 텍스트를 확인하십시오.

아래 코드를 참조해 구현해 보십시오.

bool temp = true;
private void C1FlexGrid1_ColumnContextMenuOpening(object sender, C1.Win.C1FlexGrid.ColumnContextMenuOpeningEventArgs e)
​
      {
          e.ContextMenuStrip.Items.Add("Show Filter Option");
          e.ContextMenuStrip.Items.Add("Show Conditional Formatting Option");
          if (temp)
          {
              e.ContextMenuStrip.ItemClicked += ContextMenuStrip_ItemClicked;
              temp = false;
          }
      }
​
private void ContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
      {
          if(e.ClickedItem.Text == "Show Filter Option")
          { 
            //Filter options
          }
          if (e.ClickedItem.Text == "Show Conditional Formatting Option")
          {
              //Conditional Formatting Options
          }
      }


참고: 임시 부울 변수를 사용하여 ContextMenuStrip의 ItemClicked 이벤트 처리기를 한 번 생성하십시오. 그러지 않으면 향후 두 번째 클릭부터 여러 번 호출됩니다.

첨부된 샘플에서 컨텍스트 메뉴 항목을 두 개 추가했습니다. 이 메뉴 항목에서는 C1RulesManager를 사용하여 조건부 서식을 적용하고 C1FilterEditor를 사용하여 여러 기준에 따라 해당 서식을 필터에 적용하는 기능을 최종 사용자에게 제공합니다.

이러한 컨트롤에 대해 자세히 알아보려면 다음 포스팅을 참조해 보세요.

아래 GIF는 런타임에 위의 메뉴 항목이 C1FlexGrid 컨트롤에서 작동하는 방식을 보여줍니다.

새로운 FlexGrid 기능


고급 다중 열 정렬

C1FlexGrid 컨트롤을 사용하면 열 머리글을 클릭하여 정렬 상태를 오름차순과 내림차순으로 전환함으로써 열별로 그리드를 정렬할 수 있습니다. 정렬은 기본적으로 C1FlexGridBase의 AllowSorting 속성을 통해 C1FlexGrid에서 활성화할 수 있습니다. AllowSortingEnum 열거를 사용하여 C1FlexGrid에서 제공하는 여러 정렬 기능을 활용할 수 있습니다. AllowSortingEnum 열거를 사용하면 여러 열, 단일 열, 다중 열 또는 열 범위를 자동 정렬하거나 정렬을 방지할지 선택할 수 있습니다.

다중 열 정렬은 2개 이상의 행에서 일부 열에 공통된 값이 포함된 경우에만 가능합니다. 해당 시나리오에서 첫 번째 열 정렬을 적용하면 (해당 열의 경우 행에 동일한 값이 포함되어 있기 때문에) 데이터가 영향을 받지 않습니다. 따라서 첫 번째 열 + 두 번째 열 + 등에 대해 데이터를 정렬해야 합니다.

2021 v1 릴리스 전에는 C1FlexGrid에서 사용자가 범위 내 맨 오른쪽 열의 열 머리글을 클릭하여 열 범위를 정렬할 수 있는 다중 열 정렬 기능을 제공했습니다. AllowSorting 속성을 AllowSortingEnum.ColumnRange로 설정하면 동일한 기능을 사용할 수 있습니다.

2021 v1 릴리스의 경우 FlexGrid의 다중 열 정렬 기능에서 제공하는 새로운 기능을 사용하여 다중 열을 다른 순서로 정렬할 수 있습니다. 고급 다중 열 정렬 기능을 실행하려면 FlexGrid의 AllowSorting 속성을 정의하십시오(아래 참조).

_flex.AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.MultiColumn;

AllowSortEnum 열거에서 Auto라는 새 멤버를 하나 더 추가했습니다. 이렇게 하면 기본 단일 열 정렬 기능과 다중 열 정렬 기능을 모두 제공하여 다중 열 정렬을 실행할 수 있습니다. Ctrl 키를 누른 상태에서 다중 열 머리글을 클릭하면 이 기능을 사용할 수 있습니다. 

아래 GIF를 보면서 C1FlexGrid 컨트롤에서 정렬이 작동하는 방식을 알아보십시오.

열 정렬

참고: 바인딩 모드에서 그리드를 사용하는 경우 정렬은 C1.Win.C1FlexGrid.C1FlexGridBase.DataSource 객체에서 수행됩니다. 데이터 소스 객체가 정렬을 지원하지 않는 경우 AllowSorting 속성이 영향을 미치지 않습니다. 또한 바인딩 해제 모드에서는 정렬 방법을 사용하여 데이터를 정렬할 수도 있습니다.

새로운 C1FlexGrid 컨트롤 기능을 잘 활용해 보시길 바랍니다.




지금 바로 ComponentOne을 다운로드하여 직접 테스트해보세요!

c1.png

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그

인기글

더보기
  • 인기 게시물이 없습니다.
그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@grapecity.com | 전화 : 1670-0583 | 경기도 안양시 동안구 시민대로 230, B-703(관양동, 아크로타워) 그레이프시티(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 Copyright ⓒ 2021 GrapeCity inc.