怎么样给ListView控件的Items填加下拉框。

yangtongying888 2012-05-29 09:17:38
主要是SumItems中的二三列添加combobox 。
请牛人指教谢谢
...全文
447 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangtongying888 2012-05-29
  • 打赏
  • 举报
回复
参考一楼大师的自己修改下基本上能实现 不过出现俩问题望能帮忙下:
1,行列范围值为空也出现了COMBOBOX(如何判断listview为空值);
2,我用了俩个COMBOBOX,如何在选完一个COMBOBOX
之后去点击另一个COMBOBOX的下拉三角符号去掉


yangtongying888 2012-05-29
  • 打赏
  • 举报
回复
第二列 COMBOBOX:11 22 33
第三列 COMBOBOX:55 66 77
请问咋做?
grjs2004 2012-05-29
  • 打赏
  • 举报
回复
内嵌控件的方法很多,你可以到网上找一下。
整体思路就是:
当获得焦点时,显示Combobox下拉控件,选择Combobox的值后,将值赋予焦点位置的格子,
Combobox的位置在焦点位置格子的下方,长度一样;
当焦点移开时,Combobox要相应的移动或者隐藏。

怎么做效率更好,那就看你的设计啦!
具体代码自己写。
s11ss 2012-05-29
  • 打赏
  • 举报
回复
uses CommCtrl;

procedure TForm1.Button1Click(Sender: TObject);
var
R: TRect;
begin
ListView_GetSubItemRect(ListView1.Handle, 1 {第几个Item}, 2{这个Item的第几个SubItem},
LVIR_BOUNDS, @R);

if ComboBox1.Parent <> ListView1 then
ComboBox1.Parent := ListView1;
ComboBox1.BoundsRect := R
end;


ps:问题如果解决,就请及时结贴!
yangtongying888 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
参考一楼大师的自己修改下基本上能实现 不过出现俩问题望能帮忙下:
1,行列范围值为空也出现了COMBOBOX(如何判断listview为空值);
2,我用了俩个COMBOBOX,如何在选完一个COMBOBOX
之后去点击另一个COMBOBOX的下拉三角符号去掉

哥只是个老鸟!
1. ShowMessage(ListView1.Items[2].SubItem……
[/Quote]
呵呵 老鸟
谢了 搞定 给分!
s11ss 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
参考一楼大师的自己修改下基本上能实现 不过出现俩问题望能帮忙下:
1,行列范围值为空也出现了COMBOBOX(如何判断listview为空值);
2,我用了俩个COMBOBOX,如何在选完一个COMBOBOX
之后去点击另一个COMBOBOX的下拉三角符号去掉
[/Quote]
哥只是个老鸟!
1. ShowMessage(ListView1.Items[2].SubItems[1])
2. ComboBox1.Style := csSimple 或 ComboBox1.Hide;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧