WinForms윈폼 Flexgrid에서 Combobox를 사용하는 방법 문의
페이지 정보
작성자 우성 작성일 2023-08-25 11:00 조회 217회 댓글 0건본문
관련링크
안녕하세요.
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 값으로 가져올 수 있는 방법이 있을까요?
댓글목록
등록된 댓글이 없습니다.