! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

Flexgrid에서 Combobox를 사용하는 방법 문의 > Q&A | 토론

본문 바로가기

ComponentOne

Q&A | 토론

WinForms윈폼 Flexgrid에서 Combobox를 사용하는 방법 문의

페이지 정보

작성자 우성 작성일 2023-08-25 11:00 조회 217회 댓글 0건
제품 버전 : 2017v1
컨트롤 이름 : Flexgrid

본문

안녕하세요.


Flexgrid에서 Cellstyle을 Combobox로 변경해서 사용하던 중에 궁금한 부분이 있어 문의드립니다. 

1. Flexgrid의 특정 cell의 combobox index 및 itemName을 원활하게 가져오는 방법

2. Flexgrid 내의 combobox의 itemlist가 많아질수록 느려지는 부분을 해결할수 있는 방법이 있는지?

3.실제로 콤보박스를 더블클릭했을때 콤보박스의 아이템이 변경되는 부분이 있는데 막는 방법이 있는지?

4.콤보박스에 포커스를 두고 숫자키를 입력했을때 아이템이 변경되는것을 막는 방법이 있는지?


우선 저희가 쓰고 있는 방식은 Cellstyle을 변경해서 사용하고 있습니다.

스타일 변경 코드는 아래와 같습니다.

  public void Percent_30(ref C1FlexGrid _flex, int GridRange_YS, int GridRange_XS, int GridRange_YE, int GridRange_XE) 

        {

            CellStyle cs;

            CellRange rg;

            ListDictionary dataMap1 = new ListDictionary();

            cs = _flex.Styles.Add("Percent_30");

            dataMap1 = new ListDictionary(); 

            double val = -1;

            for (int i = 0; i < 31; i++)

            {

                val = val + 1; 

                dataMap1.Add(i.ToString(), val.ToString());

            }

            cs.DataMap = dataMap1;

            rg = _flex.GetCellRange(GridRange_YS, GridRange_XS, GridRange_YE, GridRange_XE); 

            rg.Style = _flex.Styles["Percent_30"];

        }

이렇게 셋팅해서 아래와 같이 사용합니다.


현재 콤보박스의 selectedindex 및 selectedItem을 가져올 때 무조건 ComboCloseUp 이벤트를 사용하고 있는데 위에 언급한 3, 4번문제로 인해서 ComboCloseUp이벤트가 발생하지 않아서 CellChange이벤트나 다른곳에서 접근하고 싶은데 이쪽에서는 아래와 같이 접근이 안됩니다. 


private void _flex_ComboCloseUp(object sender, RowColEventArgs e)

        {

            int itemIndex = _flex.ComboBoxEditor.SelectedIndex;

            string itemName = _flex.ComboBoxEditor.SelectedItem.ToString();


정석적으로 사용하는 방법이 따로 있는건지 궁급합니다. 

그리고 콤보박스를 사용할 경우에 flexgrid[2, 4] <--이 셀을 찍어보면 인덱스가 찍히는데 이 값을 이벤트 함수 이외의 다른곳에서 SelectedItem 값으로 가져올 수 있는 방법이 있을까요?



  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

WinForms윈폼 Re: Flexgrid에서 Combobox를 사용하는 방법 문의

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK싸이먼 작성일 2023-09-01 18:32 댓글 0건

본문

첨부파일

안녕하세요

그레이프시티입니다.


1. Flexgrid의 특정 cell의 combobox index 및 itemName을 원활하게 가져오는 방법

C1FlexGrid 셀의 값과 매핑된 값을 가져오려면, 그리드의 GetData 및 GetDataDisplay 메서드를 사용할 수 있습니다.


2. Flexgrid 내의 combobox의 itemlist가 많아질수록 느려지는 부분을 해결할 수 있는 방법이 있는지? 

과거 버전인 C1FlexGrid (2017v1)을 사용하고 계신 것으로 확인이 됩니다. ComponentOne 제품은 매년 성능을 개선하여 최신 버전을 제공하고 있습니다. 따라서 최신 2023v2(611) 릴리스로 업그레이드 하여 테스트해 주시기 바랍니다. 만약 최신 버전으로 업그레이드를 진행하셔도 여전히 성능 문제가 발생하시는 경우 샘플 프로젝트를 공유해주시면 확인하여 도움을 드리겠습니다.


3. 실제로 콤보박스를 더블클릭했을때 콤보박스의 아이템이 변경되는 부분이 있는데 막는 방법이 있는지? 

안타깝게도 MS ComboBox에서 변경하는 방법은 없는 것으로 확인됩니다.

문의하신 기능은 C1FlexGrid에서 사용되는 Microsoft의 ComboBox의 동작인 것으로 확인이 됩니다. 도움을 드리지 못해 죄송합니다.


4. 콤보박스에 포커스를 두고 숫자키를 입력했을때 아이템이 변경되는 것을 막는 방법이 있는지? 

수차례 테스트를 진행했으나, 문의하신 현상을 재현하지 못했습니다. 숫자 키를 눌러도 ComboBox의 값이 변경되지 않는 것으로 확인이 됩니다. 첨부된 동영상(numberic keys behavior.zip)을 확인해주시기 바랍니다. 

현상이 발생하는 예제 프로젝트를 공유해주시고 재현 방법을 순차적으로 작성해주시면 확인하여 도움을 드리겠습니다. 


5. SelectedItem 값으로 가져올 수 있는 방법 

문의하신 변경된 내용을 콤보박스 셀에서 가져오기 위해 ComboCloseUp 이벤트가 아닌 AfterEdit/CellChange 이벤트를 사용하셔야 합니다.

이벤트 함수 외부에서 셀의 값을 가져오는 방법에 대한 예제 프로젝트를 첨부해드리오니 참고해주시기 바랍니다


추가적으로 궁금하신 사항은 문의해 주시기 바랍니다.

감사합니다.

그레이프시티 드림.

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.