我的listview中有一个弹出菜单,我希望在点击不在任何行时禁用,我想知道ListView或PopupMenu应该做什么事情.
提前致谢
Dav*_*nan 16
处理OnPopup弹出菜单的事件,如下所示:
procedure TForm1.PopupMenu1Popup(Sender: TObject);
begin
if ListView1.SelCount=0 then begin
Abort;
end;
end;
Run Code Online (Sandbox Code Playgroud)
不要尝试在逻辑中使用鼠标光标,因为可以从键盘调用弹出菜单.
事实证明,您要根据选择禁用菜单上的某些项目.您应该为此使用操作,然后您可以集中控制UI属性.动作可以链接到按钮,弹出菜单项,主菜单项等.您不希望编写启用和禁用所有这些操作的代码 - 解决此问题的操作.
使用此OnUpdate事件.
procedure TForm1.Action1Update(Sender: TObject);
begin
Action1.Enabled := ListView1.SelCount>0;
end;
Run Code Online (Sandbox Code Playgroud)
或者有时你想要对OnUpdate你要编码的许多动作都这样做:
procedure TForm1.FileActionsUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := ListView1.SelCount>0;
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6383 次 |
| 最近记录: |