如TListView中存在两列,一是姓名,另一是性别.当点击性别这个TListItem时,能够显示一TComboBox,选择男或女.就如同PB中DataWindow中的下拉列表一样.所以请问各位大侠,如何实现?

解决方案 »

  1.   

    知道如何做,但就是不会做;子类化TListView。重载Create构造函数,加入ControlStyle:=ControlStyle+[csAcceptsControls];使控件可以接受子控件。
    然后你就可以:
    FCombobox:=TCombobox.Create(ListView1);
    FComboBox.Parent:=ListView1;
    不过还要拦截消息WM_COMMAND。
    例如:
    procedure TMyListView.WMCommand(var Message:TWMCommand);
    begin
     inherited;
     if CountrolCount>0 then FindControl(Message.Ctl).Dispatch(Message);
    end;
    另外还要在重绘的时候把Combobox画好