有关listbox控件的问题(50分)

  • 主题发起人 主题发起人 wangg
  • 开始时间 开始时间
W

wangg

Unregistered / Unconfirmed
GUEST, unregistred user!
请问用listbox控件中怎样实现把数据库两个字段中的
当前记录添加到控件同一行的两列。不胜感激!
 
取两个字段的内容你应该没问题吧,我想你只是不知如何在同一行显示成两列吧。
假设S1、S2是两个字段的内容
S:=Format('%-20s%-20',[S1,S2]);
ListBox1.Items.Add(s);

实际上ListBox不能分列显示,所以只能这样按格式化输出,看起来也是两列的样子。 :)
 
如果想做得好一点,建议使用Tlistbox的自绘。
 
用TStringGrid模拟一个TListBox:)
FixedCols和FixedRows设为0,ColCount为2(一个字段一列),Options为[goRowSelect]。
然后注意动态设定或添加、删除RowCount就行了。
 
不如用LISTVIEW!!!
多好的东西!
 
您好!
关于"listbox控件的问题"还有一些问题请教,现在我用stringgrid控件可以实现将
两个字段读出至stringgrid的两列,但是如何将任意选中stringgrid的某行、某列读出
、删除呢?多谢赐教!
 
StringGrid1.Rows[StringGrid1.Row]是包含StringGrid1当前选中行所有格的String的一个TStrings,同理,
StringGrid1.Cols[StringGrid1.Col]是包含StringGrid1当前选中列所有格的String的一个TStrings。
删除比较麻烦,如果是最后一行或最后一列还好,比如选定最后一行进行删除:

StringGrid1.Rows[StringGrid1.RowCount - 1].Clear;//最好有这一句
StringGrid1.RowCount := StringGrid1.RowCount - 1;

如果要删除中间的某一行,还得把其后的所有行都往前提,如删除第n行:

for I := n to StringGrid1.RowCount - 2 do
StringGrid1.Rows.Assign(StringGrid1.Rows[I + 1]);
StringGrid1.Rows[StringGrid1.RowCount - 1].Clear;//不要用Free!
StringGrid1.RowCount := StringGrid1.RowCount - 1;

你再看看有没有别的简单些的方法吧!
(比如当数据量不是很大的时候可以考虑将行或列隐藏)
 
后退
顶部