2012-12-11 18 views
3

나는이처럼 DevExpress의 GridControl의 모든 행의 오른쪽에있는 삭제 버튼을 만들려고 해요 :WinForms에서 DevExpress GridControl에 삭제 버튼을 만들려면 어떻게해야합니까?

내가 다른 열을 추가 할과 그것의 ColumnEdit 속성을 설정 한 어떤

enter image description here

RepositoryItemButtonEdit의 인스턴스입니다. 행을 삭제하려면 ButtonClick 이벤트를 처리합니다.

나는이 코드에서에있어 어떤 행 확인할 수 있습니다 : 내 버튼을 텍스트 편집기를 원하지 않기 때문에

myGridView.GetRow(myGridView.FocusedRowHandle); 

, 나는 HideTextEditor에 TextEditStyle을 설정합니다.

기본적으로 단추에는 줄임표가 표시됩니다.

줄임표를 제거하려면 RepositoryItemButtonEdit에서 Buttons 속성을 조정했습니다. Kind to Glyph를 설정하고 이미지를 내 X 아이콘으로 설정합니다.

불행히도 단순히 버튼을 완전히 제거하는 것처럼 보입니다.

누구나이 작업을 수행하는 더 좋은 방법이나 이미지가있는 단추를 각 그리드 행에 표시하는 방법을 알고 있습니까?

답변

3

삭제 버튼 종류가 실제로 있음을 발견했습니다. 그래서 질문과 마찬가지로 모든 것을 처리하지만 Glyph를 선택하는 대신 삭제를 선택하고 이미지를 선택할 필요가 없습니다.

사용에게 ButtonEdit 제어 및 HideTextEditorTextEditStyle 속성을 설정 :

2

나는 내가 DevExpress forum에서 발견 된 것을 요약했다. 리포지토리 항목에는 자막, 이미지 등을 추가 할 수있는 Buttons 컬렉션이 있습니다.

Buttons 컬렉션에서 "종류"속성을 "글리프"로 변경합니다. CustomRowCellEdit 이벤트를 사용하여 셀 단위로 편집자를 조건부로 적용 할 수 있습니다. 버튼의 Kind 속성을 "문양"을 설정하고 원하는대로 텍스트로 Caption 속성을 설정해야합니다 : 새 RepositoryItemButtonEdit를 구성하고에 할당,

DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit buttonEdit = 
    new DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit(); 
buttonEdit.Buttons[0].Kind = DevExpress.XtraEditors.Controls.ButtonPredefines.Glyph; 
buttonEdit.Buttons[0].Caption = "X"; 
buttonEdit.TextEditStyle =    
    DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor; 
e.RepositoryItem = buttonEdit; 

당신은의 GridView의 CustomRowCellEdit 이벤트를 처리한다을 e.RepositoryItem property.

작동하는지 알려주세요.

+0

예, 작동합니다. 감사합니다. 나는 당신의 대답을 유용하다고 표시했습니다. 몇 가지 주석 : 1. if (e.Column == [DeleteColumnName]) {...}에 코드를 래핑하면됩니다. 그렇지 않으면 모든 열이 버튼으로 바뀝니다. 2. 내장형 X를 사용하는 것이 "X"를 타이핑하는 것보다 더 간결하다고 생각하기 때문에 (Glyph 대신 Delete 종류를 사용하는) 내 대답을 선호합니다. 나는 여전히 X에 대해 커스텀 이미지를 사용하는 방법을 알아 내지 못했지만 실제로는 문제가되지 않는다. –

관련 문제