Listview自画添加编辑框问题,有点小难度。
GridEdit是一个Edit控件,我的目的是当用户选择一行的时候,Subitem的地方出现一个edit编辑框,用来实现子条目编辑。
procedure TFbasic_setup.ListView1DrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
if (odSelected in State) then
begin
GridEdit.Left:=rect.Left + ListView1.Left;
GridEdit.Top:=Rect.Top + ListView1.Top;
GridEdit.Width:=Rect.Right-Rect.Left;
GridEdit.Height:=Rect.Bottom-Rect.Top;
GridEdit.Visible:=true;
end;
end;
这样的结果是edit框出来了,但是占据了整行,我只要从subitem的left到这个subitem的末尾即可。
而且,原来listview列表里的数据怎么都看不见了?是不是因为onOwnDraw属性打开了?
大家拷贝代码到机子上看一下,谢谢。
问题点数:0、回复次数:8Top
1 楼cowboy_blues()回复于 2004-09-04 15:40:14 得分 0
怎么还是没人答啊?Top
2 楼cowboy_blues()回复于 2004-09-04 15:53:13 得分 0
应该不会那么难吧?Top
3 楼cowboy_blues()回复于 2004-09-04 16:12:22 得分 0
高手在哪里?Top
4 楼wilowind(杂而不精)回复于 2004-09-04 17:26:07 得分 0
先顶一下. 吃完饭会来再看.Top
5 楼cowboy_blues()回复于 2004-09-04 17:57:50 得分 0
我自己搞出来了,不过有点繁琐。Top
6 楼qinmaofan(采菊南山下【抵制日货】)回复于 2004-09-05 09:45:24 得分 0
贴出来看看。Top
7 楼wilowind(杂而不精)回复于 2004-09-05 10:30:10 得分 0
恭喜恭喜,我还没搞出来Top
8 楼zzybbs()回复于 2004-09-05 11:42:25 得分 0
//让GridEdit在第三列显示
procedure TForm1.Button1Click(Sender: TObject);
begin
GridEdit.Parent := ListView1;
GridEdit.BoundsRect := ListView1.Selected.DisplayRect(drBounds);
GridEdit.Left := ListView1.Columns[0].Width + ListView1.Columns[1].Width;
GridEdit.Width := ListView1.Columns[2].Width;
end;Top




