관리 메뉴

안까먹을라고 쓰는 블로그

[C#] C1FlexGrid - Edit Mode 본문

Language/C#

[C#] C1FlexGrid - Edit Mode

YawnsDuzin 2022. 4. 5. 17:46

 

반응형

https://www.grapecity.com/componentone/docs/win/online-flexgrid/edit-mode.html

 

Edit Mode | FlexGrid for WinForms | ComponentOne

FlexGrid for WinForms provides several events and methods related to editing to give you complete control on grid editing. Learn more about edit mode here.

www.grapecity.com


FlexGrid 에서 편집 모드는 마우스 클릭이나 키보드를 사용하여 런타임에 호출할 수 있습니다. 그리드가 편집 모드인지 여부를 프로그래밍 방식으로 확인하려면 Editor 속성 값을 읽을 수 있습니다  . 그리드가 편집 모드에 있는 경우 속성은 TextBox  또는  ComboBox 와 같이 편집기로 사용 중인 컨트롤에 대한 참조를 반환합니다 . 그러나 그리드가 편집 모드가 아니면 속성이 null 을 반환합니다 .

프로그래밍 방식으로 그리드를 편집 모드로 전환하려면  StartEditing 메서드를 사용하고 FinishEditing 메서드 를 호출하여 편집을 완료할 수 있습니다  . PreserveEditMode 속성 을 사용하여 셀을 탐색하는 동안 그리드에서 편집 모드 상태를 유지할 수도 있습니다  .

또한 FlexGrid는 편집 프로세스를 보다 쉽게 ​​제어할 수 있도록 다양한 이벤트를 발생시킵니다. 아래 표는 편집 과정에서 그리드에 의해 발생하는 이벤트의 순서를 나열합니다.


Event Name Description
BeforeEdit 이벤트는 편집 가능한 셀이 선택될 때마다 발생합니다. 이벤트의 Cancel 매개변수를 true 로 설정하여 셀이 편집되는 것을 방지할 수 있습니다 . 적절한 드롭다운 버튼이 셀에 그려지도록 ComboList 속성 을 수정할 수도 있습니다  . 사용자는 이 후에 실제로 편집을 시작하지 않을 수 있습니다. 그는 단순히 선택 항목을 다른 셀이나 컨트롤로 이동할 수 있습니다.
StartEdit 이벤트는 사용자가 실제로 키를 입력했거나 셀의 드롭다운 버튼을 클릭했고 실제로 편집을 시작하려는 것을 제외하고 BeforeEdit 와 유사합니다. 이 시점에서 여전히 편집을 취소할 수 있습니다. 컨트롤이 사용해야 하는 편집기 유형을 아직 결정하지 않았기 때문에 이 시점에서 Editor 속성 은 여전히 ​​null 입니다. 이 시점에서 Editor 속성에 사용자 지정 편집기를 할당할 수 있습니다.
ChangeEdit 이벤트는 editor.TextChanged 이벤트의 래퍼입니다. 이벤트는 편집기의 내용이 변경될 때 발생합니다. 이 이벤트를 사용하여 편집기에서 현재 콘텐츠를 추적할 수 있습니다.
SetupEditor 이벤트는 편집기 컨트롤이 생성되고 셀을 편집하도록 구성된 후 발생하지만 표시되기 전에 발생합니다. 이 시점에서 편집기 속성을 변경할 수 있습니다(예: TextBox 편집기에서 사용할 최대 길이 또는 암호 문자 설정). 자체 이벤트 핸들러를 편집기에 연결할 수도 있습니다.
ValidateEdit 이벤트는 편집기 값이 그리드에 다시 복사되기 전에 사용자가 편집을 완료하면 시작됩니다. 그리드에서 원래 값을 검색하여 검사할 수 있습니다(이벤트는 셀의 좌표를 제공함). Editor 속성(예: Editor.Text)을 통해 그리드에 할당할 새 값을 확인할 수 있습니다 . 새 값이 셀에 유효하지 않은 경우 취소 매개변수를 true 로 설정 하고 그리드는 편집 모드로 유지됩니다. 셀을 편집 모드로 유지하는 대신 원래 값을 복원하고 편집 모드를 종료하려면 Cancel 매개 변수를 true 로 설정한 다음 FinishEditing 메서드 를 호출합니다 .
LeaveEdit 이 이벤트는 그리드 컨트롤이 편집 모드를 종료한 후 발생합니다. 이 이벤트를 사용하여 새 셀 내용을 승인 또는 거부하거나 커밋할 편집기 내용을 변경할 수 있습니다.
AfterEdit 이 이벤트는 새 값이 셀에 적용되고 편집기가 비활성화된 후에 시작됩니다. 이 이벤트를 사용하여 셀 값에 따라 달라지는 모든 항목(예: 부분합 또는 정렬)을 업데이트할 수 있습니다.


또한 키보드 조작과 관련된 이벤트가 거의 없으며 키를 눌렀을 때 발생합니다.  그리드가 편집 모드에 있을 때 발생한다는 사실을 제외하고는 System.Windows.Forms.Control 클래스 의 해당 클래스와 유사  합니다.

Event Name Description
KeyDownEdit 이 이벤트는 그리드가 편집 모드에 있고 키를 눌렀을 때 발생합니다. 이 이벤트를 사용하여 커서 이동과 같이 키를 누른 상태에서 작업을 한 번 또는 여러 번 수행할 수 있습니다.
KeyPressEdit 이 이벤트는 그리드가 편집 모드에 있고 문자 키를 눌렀을 때 발생합니다. 이 이벤트를 사용하여 셀 편집기에서 입력 처리와 같은 입력과 관련된 모든 작업을 수행할 수 있습니다.
KeyUpEdit 이 이벤트는 그리드가 편집 모드에 있고 키를 놓을 때 발생합니다. 이 이벤트를 사용하여 KeypressEdit 논리가 적용된 후에 실행되는 논리를 배치할 수 있습니다.




편집 비활성화


https://www.grapecity.com/componentone/docs/win/online-flexgrid/disable-editing.html

 - 그리드 편집 비활성화

 // Disable grid editing 
 c1FlexGrid1.AllowEditing = false;


 - 행 또는 열 편집 비활성화

// Disable editing of third row
c1FlexGrid1.Rows[3].AllowEditing = false;
                                        
// Disable editing of third column
c1FlexGrid1.Cols[3].AllowEditing = false;


 - 셀 편집 비활성화

// Disable cell editing 
private void C1FlexGrid1_BeforeEdit(object sender, RowColEventArgs e)
   {
     if ((e.Col == 4) && (e.Row == 2))
      {
          e.Cancel = true;
      }
   }



끝~

반응형
Comments