0
TListView 선택 항목을 클릭했지만 완전히 비활성화하지 않으면 편집 모드로 들어가는 것을 비활성화하고 싶습니다 (ReadOnly 속성 = True로 설정). 다른 방법으로 편집 할 수 있기를 바랍니다. 것이 가능하다 ?항목 클릭시 TListView 편집을 비활성화하는 방법은 무엇입니까?
TListView 선택 항목을 클릭했지만 완전히 비활성화하지 않으면 편집 모드로 들어가는 것을 비활성화하고 싶습니다 (ReadOnly 속성 = True로 설정). 다른 방법으로 편집 할 수 있기를 바랍니다. 것이 가능하다 ?항목 클릭시 TListView 편집을 비활성화하는 방법은 무엇입니까?
LVN_BEGINLABELEDIT
알림이 발생하는 정확한 방법을 쉽게 감지 할 수있는 방법이 없습니다. 목록보기의 내부 편집을 트리거하는 알림은 LVN_BEGINLABELEDIT
입니다.
그럼, 아마 약간 해킹 된 해결책을 찾아야 할 것 같습니다. 양식에 Boolean
필드를 추가하십시오 (예 : FCanEditListView
). 편집 모드를 실행할 때마다 다음, 나중에 False
에 복귀 한 다음 편집 모드를 실행하기 직전에이 플래그 True
을 설정 :
procedure TForm1.Button1Click(Sender: TObject);
var
Item: TListItem;
begin
Item := ListView1.Selected;
if Assigned(Item) then
begin
FCanEditListView := True;
Item.EditCaption;
FCanEditListView := False;
end;
end;
는 다음과 같이 동작을 전환, 목록보기의 OnEditing
이벤트에 대한 처리기를 추가 그래서 :
procedure TForm1.ListView1Editing(Sender: TObject; Item: TListItem;
var AllowEdit: Boolean);
begin
AllowEdit := FCanEditListView;
end;