4
禁用節點我有我的VirtualStringTree 5個節點:跳繩/在VirtualTreeView
節點#4沒有標題,當用戶按下VK_DOWN或VK_UP應該被跳過。
當用戶點擊它時也不應該被選中。
我寫了這個代碼(即作品)跳過所述節點使用鍵盤時:
if Key = VK_DOWN then
begin
node := VirtualTree.GetNext(VirtualTree.FocusedNode);
if not Assigned(node) then Exit;
data := VirtualTree.GetNodeData(node);
if data^.Caption = '' then
begin
VirtualTree.GetNext(node);
VirtualTree.FocusedNode := node;
VirtualTree.Selected[node] := true;
end;
end
else if Key = VK_UP then
begin
node := VirtualTree.GetPrevious(VirtualTree.FocusedNode);
if not Assigned(node) then Exit;
data := VirtualTree.GetNodeData(node);
if data^.Caption = '' then
begin
VirtualTree.GetPrevious(node);
VirtualTree.FocusedNode := node;
VirtualTree.Selected[node] := true;
end;
end;
的問題是,該節點仍然得到通過點擊它的重點。
我試過禁用節點VirtualTree.IsDisabled[node] := true;
- 但沒有運氣。
任何人都知道一種方法來實現這一點?
我不知何故錯過了這個事件。謝謝:-) – ChrisB 2014-12-04 21:58:00
不客氣!無論如何,最好處理鍵盤處理的'OnKeyAction'事件。此外,通過'GetPreviousVisible'和'GetNextVisible'方法搜索最近的非空節點。不要忘記,還有更多的鑰匙可以處理,至少例如(請注意,OnFocusChanging會阻止節點通過鍵盤進行聚焦,因此您需要爲所有導航鍵找到最近的可聚焦節點,否則將獲得鍵值沒有做任何事情)。 – TLama 2014-12-04 22:17:05