请问这样的界面效果如何实现?应该是有点难度。顶者有分! 我想实现如下的界面效果:1、在ListBox里双击一项;2、这个项变成可以编辑的;3、当这个项失去焦点的时候,内容变为刚才编辑的内容;想不出来如何实现,请各位帮忙,顶者有分!谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 双击之后弹出一个你设计的对话框,里面的edit内容就是双击的listbox内容修改之后关闭,listbox内容更新 双击在双击的地方画个Edit,编辑完毕后修改ListBox,并隐藏Edit TEditListBox控件,要编辑时将AllowEdit设成True。http://www.tmssoftware.com/editlist.htm 先创建Edit或类似可输入控件A,在双击的地方显示A并输入,失去焦点时把A的内容传给ListBox的Item对应项。 先创建Edit或类似可输入控件A,在双击的地方显示A并输入,失去焦点时把A的内容传给ListBox的Item对应项,并隐藏A。 我也想过在双击的时候获得当前item的位置,然后画个Edit代替,但是我遇到了些问题:1、我重画了Listbox,不知道为什么我设置heigt的时候就是不好用,其他的都好用,比如加个icon什么的;2、生成的Edit的高度和Listbox的item的高度不一样,画出来是不是会有点难看呀?3、我想重新画一下EditBox,画成没有边框或者边框很小的那种,请问EditBox如何重画呀? 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; 先定义一个edit,然后在双击ListBox的时候根据需要输入的位置,调整edit的高度和宽度,放到需要修改的地方,就可以了。当edit失去焦点的时候将值赋给listbox对应的项就可以了 Delphi数据压缩处理资料(1) 求两个日期时间函数 如何判断远程sql server服务器是否启动?在线等待 庆祝!上任以来回答了4个问题,挣了70分! 想多交些开发人员做朋友,共同讨论问题,一起进步! 持久化动态创建控件的问题 套打格式的控制(错位) string 如何转换成 Pchar ?急 query控件连接远程数据库能不能修改数据 有关.emf图片格式的问题(用QReport存的)。 急!!!!!从TMemoryStream.Read读取到的是乱码 老婆从北京回来了,嘻嘻~
修改之后关闭,listbox内容更新
1、我重画了Listbox,不知道为什么我设置heigt的时候就是不好用,其他的都好用,比如加个icon什么的;
2、生成的Edit的高度和Listbox的item的高度不一样,画出来是不是会有点难看呀?
3、我想重新画一下EditBox,画成没有边框或者边框很小的那种,请问EditBox如何重画呀?
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;