我想实现如下的界面效果:
1、在ListBox里双击一项;
2、这个项变成可以编辑的;
3、当这个项失去焦点的时候,内容变为刚才编辑的内容;想不出来如何实现,请各位帮忙,顶者有分!谢谢。

解决方案 »

  1.   

    双击之后弹出一个你设计的对话框,里面的edit内容就是双击的listbox内容
    修改之后关闭,listbox内容更新
      

  2.   

    双击在双击的地方画个Edit,编辑完毕后修改ListBox,并隐藏Edit
      

  3.   

    TEditListBox控件,要编辑时将AllowEdit设成True。http://www.tmssoftware.com/editlist.htm
      

  4.   

    先创建Edit或类似可输入控件A,在双击的地方显示A并输入,失去焦点时把A的内容传给ListBox的Item对应项。
      

  5.   

    先创建Edit或类似可输入控件A,在双击的地方显示A并输入,失去焦点时把A的内容传给ListBox的Item对应项,并隐藏A。
      

  6.   

    我也想过在双击的时候获得当前item的位置,然后画个Edit代替,但是我遇到了些问题:
    1、我重画了Listbox,不知道为什么我设置heigt的时候就是不好用,其他的都好用,比如加个icon什么的;
    2、生成的Edit的高度和Listbox的item的高度不一样,画出来是不是会有点难看呀?
    3、我想重新画一下EditBox,画成没有边框或者边框很小的那种,请问EditBox如何重画呀?
      

  7.   

    procedure TForm1.Edit1Exit(Sender: TObject);
    begin
      ListBox1.Items.Strings[ListBox1.ItemIndex] := Edit1.Text;
      Edit1.Hide;
    end;procedure TForm1.ListBox1DblClick(Sender: TObject);
    var
     Rect : TRect;
    begin
      Rect := ListBox1.ItemRect(ListBox1.ItemIndex);
      Edit1.Top := Rect.Top + listbox1.Top ;
      Edit1.Left :=Rect.Left+ listbox1.Left ;
      Edit1.AutoSize := False;
      Edit1.Height := 17;
      Edit1.Show;
      Edit1.SetFocus;
    end;
      

  8.   

    先定义一个edit,然后在双击ListBox的时候根据需要输入的位置,调整edit的高度和宽度,放到需要修改的地方,就可以了。当edit失去焦点的时候将值赋给listbox对应的项就可以了