listview里有数据,我加了一个popmenu 在空的地方点右键直接添加数据,就出错的 .如果选中一个数据然后点右键添加数据到listbox就正常。如何处理这个错误?

解决方案 »

  1.   

    或者在 MouseUp 事件里面:var
      Item: TListItem;
    begin
      Item := LV.GetItemAt(X, Y);  // 这就是鼠标下面的Item
      if (Button <> mbLeft) or (Item = nil) then Exit;然后处理这个Item
      

  2.   


    如果想让无选中的情况下禁用右键, 也可以试下ContextPopup这个事件procedure TForm1.listview1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    begin
      if listview.Selected = nil then Handled := True;
    end;
      

  3.   

    不行,我只是想让他不出错,选空的时候index 是不是=-1? 我想选空的时候也不出错