WinForms윈폼 ComboBoxCellType 클릭 시 글자가 보이는 위치 조정
페이지 정보
작성자 김혜주 작성일 2023-10-11 14:29 조회 739회 댓글 0건본문
관련링크
댓글목록
등록된 댓글이 없습니다.
등록된 댓글이 없습니다.
김혜주 님, 안녕하세요.
그레이프시티입니다.
ComboBoxCellType의 StopEditingAfterDropDownItemSelected 속성값을 True로 설정하여, Enter 키를 누르거나 콤보 박스 리스트의 항목을 클릭했을 때 드롭다운 목록을 닫고 편집을 중지하도록 할 수 있습니다.
아래 샘플 코드와 gif의 동작을 확인 바랍니다.
FarPoint.Win.Spread.CellType.ComboBoxCellType combo = new FarPoint.Win.Spread.CellType.ComboBoxCellType(); combo.Items = itemsArray; combo.StopEditingAfterDropDownItemSelected = true; fpSpread1.ActiveSheet.Cells[0, 0].CellType = combo;
답변의 내용이 도움이 되었다면 우측 상단의 "채택" 버튼을 클릭하여 피드백 해주시면 감사드리겠습니다. 만약 원하시는 기능과 다를 경우, 댓글로 조금 더 자세한 설명을 남겨주시면 확인 후 회신드리겠습니다.
감사합니다.
그레이프시티 드림
등록된 댓글이 없습니다.
김혜주 님, 안녕하세요.
그레이프시티입니다.
아쉽게도 말씀하신 기능은 Spread에서 지원되지 않는 기능입니다.
다만, 말씀하신 기능과 유사하게 동작하도록 할 수 있는 대안을 안내드립니다.
콤보박스 셀 타입의 드롭다운이 보여질 때 셀의 편집이 시작되고, 드롭다운이 닫힐 때 편집이 종료됩니다.
이때 발생하는 EditModeOn이벤트 및 EditModeOff 이벤트를 사용하여, 콤보박스에서 이전에 선택된 값의 왼쪽이 보여지게 할 수 있습니다.
단, 이때 텍스트의 선택 영역(파란색으로 블럭 잡혀있는 모습)이 손실됩니다.
아래 샘플 코드를 개발 시 참고 바랍니다.
private void Form1_Load(object sender, EventArgs e) { fpSpread1.EditModeOn += FpSpread1_EditModeOn; fpSpread1.EditModeOff += FpSpread1_EditModeOff; FarPoint.Win.Spread.CellType.ComboBoxCellType combo = new FarPoint.Win.Spread.CellType.ComboBoxCellType(); combo.Items = new string[3] { "Apple AA", "Banana BB", "Coconut CC" }; combo.StopEditingAfterDropDownItemSelected = true; fpSpread1.ActiveSheet.Cells[0, 0].CellType = combo; } FarPoint.Win.FpCombo fpCombo; bool inDropdow = false; private void FpSpread1_EditModeOff(object sender, EventArgs e) { if (fpCombo != null) fpCombo.DropDown -= FpCombo_DropDown; } private void FpSpread1_EditModeOn(object sender, EventArgs e) { if (fpSpread1.EditingControl is FarPoint.Win.FpCombo combo) { fpCombo = combo; fpCombo.DropDown += FpCombo_DropDown; } } private void FpCombo_DropDown(object sender, FarPoint.Win.DropDownEventArgs e) { if (inDropdow) return; inDropdow = true; if (!fpCombo.DroppedDown) { e.Cancel = true; fpCombo.ShowList(true); int selectionLength = fpCombo.SelectionLength; if (selectionLength > 0) { fpCombo.Select(0, 0); } } inDropdow = false; }
안내드린 사항이 도움이 되었다면, 우측 상단의 "채택" 버튼을 눌러 피드백을 남겨주시면 감사하겠습니다.
감사합니다.
그레이프시티 드림
등록된 댓글이 없습니다.