社区
C++ Builder
帖子详情
谁能给个不错的LISTVIEW点击列头排序的源代码
zyandzf
2004-08-26 10:59:37
谁能给个不错的LISTVIEW点击列头排序的源代码
感激不尽
谢谢
zhouying1981@163.net
...全文
219
2
打赏
收藏
谁能给个不错的LISTVIEW点击列头排序的源代码
谁能给个不错的LISTVIEW点击列头排序的源代码 感激不尽 谢谢 zhouying1981@163.net
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
constantine
2004-08-26
打赏
举报
回复
---------------------------------------------------------------
你需要在class里设置2个变量,一个int变量表示当前排序的列号,一个bool
变量表示当前是升序还是降序排列。当用户点击的列号和保存的列号不同时,
为升序排列,同时保存排序的列号;当用户点击的列号和保存的列号相同时,
将bool变量取反,然后再排序。这儿我写个例子:
class TForm1 : public TForm
{
__published: // IDE-managed Components
TListView *ListView1;
void __fastcall ListView1ColumnClick(TObject *Sender,
TListColumn *Column);
void __fastcall ListView1Compare(TObject *Sender, TListItem *Item1,
TListItem *Item2, int Data, int &Compare);
private: // User declarations
int SortCol;
bool Ascend;
bool __fastcall CustomSort(PFNLVCOMPARE SortProc, int lParam);
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//-------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
SortCol = -1; Ascend = true;
}
//-------------------------------------------------------------
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
TListColumn *Column)
{
if (SortCol != Column->Index) {
SortCol = Column->Index;
Ascend = true;
}
else
Ascend = !Ascend;
ListView1->CustomSort(NULL, 0);
}
//-------------------------------------------------------------
void __fastcall TForm1::ListView1Compare(TObject *Sender,
TListItem *Item1, TListItem *Item2, int Data, int &Compare)
{
if (SortCol == -1)
Compare = 0; //不排序
else if(SortCol == 0)
Compare = CompareText(Item1->Caption,Item2->Caption);
else
Compare = CompareText(Item1->SubItems->Strings[SortCol
-1], Item2->SubItems->Strings[SortCol-1]);
if (!Ascend) Compare = -Compare; //降序排列
}
wu_07
2004-08-26
打赏
举报
回复
http://community.csdn.net/Expert/topic/3300/3300860.xml?temp=.9795496
精彩编程与编程技巧-对
ListView
中的列
排序
...
### 知识点详解:精彩编程与编程技巧——对
ListView
中的列进行...本篇内容详细介绍了如何利用`ColumnClick`事件实现列
排序
的基本逻辑,并给出了具体的代码示例。开发者可以根据自己的需求进一步扩展和完善这些功能。
WPF
ListView
控件添加
排序
功能
- 当用户连续
点击
列头
时,可能需要切换
排序
方向或在多个字段之间切换
排序
。为此,你需要记录当前的
排序
状态,例如使用一个变量保存最后
排序
的列名和方向。 - 在处理新的
点击
事件时,检查是否是同一个列被再次
点击
...
WPF
ListView
排序
功能
- **触发
排序
**:在用户
点击
列头
时,调用ICollectionView的Refresh()方法,以应用新的
排序
规则。 4. **XAML布局** - **GridView视图**:
ListView
通常与GridView结合使用,以表格形式展示数据。在GridView中,可以...
Listview
实例
排序
- 为
ListView
的
列头
设置
点击
事件监听器,通常是通过在布局文件中为
列头
设置OnClickListener,或者在代码中设置OnItemClickListener。 - 在监听器的回调方法中,根据
点击
的列进行
排序
。 4. **
排序
逻辑**: - 当列...
wpf列表
listview
自动
排序
排列
3. **设置
排序
**:当用户
点击
列头
时,添加新的`SortDescription`。 ```csharp void ColumnHeader_Click(object sender, RoutedEventArgs e) { GridViewColumnHeader headerClicked = e.OriginalSource as ...
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章