清除 Firemonkey TListView 搜索文本

3
ListView1.items.filter := nil;

我知道上述内容可以清除ListView的筛选,但是如果搜索框可见并输入了内容,有没有办法清除搜索框中的文本?

2个回答

7
for I := 0 to ListView1.Controls.Count-1 do
  if ListView1.Controls[I] is TSearchBox then
  begin
    TSearchBox(ListView1.Controls[I]).Text := '';
  end;

(based on DocWiki!)


3

感谢@Dsm的回答。我想提供一个技巧,只需获取一次TSearchBox并将其存储在变量中即可。现在不需要每次循环遍历TListView.Controls。例如:

uses
 ..., FMX.SearchBox;

var
  SearchBox_ListView1: TSearchBox = nil;

...

if not Assigned(searchBox_listview1) then 
  for I := 0 to ListView1.Controls.Count-1 do
    if ListView1.Controls[I] is TSearchBox then
    begin
      SearchBox_listview1 := TSearchBox(ListView1.Controls[I]);
      Break;
    End;

... 

if Assigned(SearchBox_listview1) then
  SearchBox_listview1.Text := '';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接