listview排序 listcontrol排序
2025-01-13 10:10 - 立有生活网
如何实现VC中ListControl控件的排序
if (mod) return lp1.CompareNoCase(lp2);简单实现MFC ListControl 点击列头排序
listview排序 listcontrol排序
listview排序 listcontrol排序
步:
定义全局变量:
int sort_column; // 记录点击的列
bool mod; // 记录比较方法第二步:
添加比较函数
// 比较函数
static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
{// 从参数中提取所需比较lc的两行数据
int row1 = (int) lParam1;
int row2 = (int) lParam2;
CListCtrl lc = (CListCtrl)lParamSort;
CString lp1 = lc->GetItemText(row1,sort_column);
CString lp2 = lc->GetItemText(rSet itmX=ListView1.ListItems.Add(1,"WW","王伟")ow2,sort_column);
// 比较,对不同的列,不同比较,注意记录前一次排序方向,下一次要相反排序
if (sort_column<2)
{// in什么是RAID?RAID的工作原理t型比较
if (mod) return atoi(lp1)-atoi(lp2);
else return atoi(lp1)-atoi(lp1);
}else
else return lp2.CompareNoCase(lp1);
}return0;
} 第三步:添加列头点击 Lvn_Columnclickvoid ClistDlg::OnLvnColumnclickxxx(NMHDR pNMHDR, LRESULT pResult)
// TODO: 在此添加控件通知处理程序代码
sort_column = pNMLV->iSubItem;//点击的列
int count = m_list_port.GetItemCount();
for (int i=0;i m_list_port.SetItemData(i,i); // 每行的比较关键字,此处为列序号(点击的列号),可以设置为其他比较函数的二个参数 m_list_port.SortItems(MyCompareProc,(DWORD_PTR)&m_list_port);//排序第二个参数是比较函数的第三个参数 pResult =0; mod是用来控制顺序逆序的,看个人情况设置。 什么是ListView控件 VB高级控件,高级之处在于它使用了对象的方式组织内容。 要使用ListView控件,需要加入组件: Microsoft Windows Common Controls 6.0 Windows资源管理器的右半部分,就是一个ListView控件。 作用 列出并列关系的对象及对象属性。 ListView控件的对象层次结构 ListView -整个控件 ColumnHeaders -标题行 ListItems -对象行 ListItem -对象行 ListSubItems -对象属性 ListView1.SortOrder=lvwAscendingListSubItem -对象属性 注意:SubItems和ListSubItems的区别:SubItems是一个String数组;ListSubItems是一个。 View:设置ListView的外观 SelectedItem:返回选中的对象的引用。 BeforeLabelEdit:编辑ListItem对象的标签后出发。 ColumnClick:单击列标题时触发。参数中可以获得被单击的列对象。通常用于排序。 参数: string:搜索字符串。 value:在ListItem的哪部分中搜索(LvwText、LvwSubItem、LvwTag);index:开始搜索的位置。 match:匹配方式。 lines是列表类型。 列表推导式提供了一种简明扼要的方法来创建列表,它是利用其创建新列表list的一个简单方法。ListItem对象可包含任意多个的关联项目数据字符串(子项目),但每个ListItem对象子项目数目必须相同。每个子项目都对应于相关的列标头,无法直接向子项目数组添加元素,只有通过ColumnHeaders的Add方法添加列标头的方法来添加子项目。列表推导式比较像for循环语句,必要时也可以加入if条件语句完善推导式。它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者if。 列表控件: 列表控件可使用四种不同视图显示项目。可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。比如使用 ListView 控件将称作ListItem 对象的列表条目组织。 报表 View属性决定在列表中控件使用何种视图显示项目。比如ComponentOne的List控件有齐全的列表框和多列的下拉列表框,拆分样式等,可管理列表中项目的排序方法和选定项目的外观。 通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 可使用 ListView 控件将称作 ListItem 对象的itmX.SubItems(ListView1.ColumnHeaders("Sex").SubItemIndex)="男"列表条目组织成下列四种不同的视图之一:大(标准)图标;小图标;列表;报表。 View属性决定在列表中控件使用何种视图显示项目。还可用 LabelWrap 属性控制列表中与项目关联的标签是否可换行显示。另外,还可管理列表中项目的排序方法和选定项目的外观。 ListView控件对象: ListItem包含文本和相关图标(ListIColumnHeader -标题列mage对象)的索引,除此之外,当它为报表视图时,ListItem还包含代表子项目的字符串数组。 ListItems包含一个或多个ListItem对象。根据标准的语法,可以用ListView.ListItems引用,而ListView.ListItems(Index)引用中的单个元素。其中的Index指示该ListItem的显示位置。 添加成功后 让窗体重新加载数据就可以了。 设 你是在 load 里 把数据加载进去的 你就可以在红线的位置 直接 '使用SubItemIndex将SubItem与正确的ColumnHeader关联。使用关键字("Sex")指定正确的ColumnHeader。 如: mainfrom_load(sender,e); 就像重新打开该窗体一样 js啊 一句js搞定了 关闭窗口的代码前面 写一句刷新父窗口的js代码 就可以了 放心吧 经常这么做~ 直接将form1中选中的记录remove,然后再从数据库中取出来insert到listview里 如果是已经排序了的话,就全清空,再从数据库中取一边。 form1中的修改按钮的click定义如下: if (f2.ShowDialog() == DialogResult.OK) {//这里从新加载下listview的数据就可以了。 }form2中修改完成后加上以下代码: this.DialogResult = DialogResult.OK; Fnew为子窗口 当botton_click() fn =new Fnew();//实例子窗口sznew DiaSortKey:设置以第几项排序。从零开始。logResult result =fn.ShowDialog();//子窗口显示 if (result == DialogResult.OK) {flush();//父窗口执行函数(listview绑定函数) }当子窗口关闭 this.DialogResult =DialogResult.OK; this.Close(); this.Dise(); 以上实现子窗口Fnew关闭,其父窗口自动执行flush()重新绑定listview 关闭form2时隐藏form1,并打开一个新的form1,我都这样做。 列表什么意思如'添加coDim counter, i As Integerlumn1的名称。下: 把制成表,以表显示。 列表陪友册控件可使用四种不同视图显示项目,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。 比如使用 ListView 控件将称作ListItem对象的列表条目组织成下列四种不同的视图之一:大(标准)图标、小图标、列表。 报表View属性决定在列表中控件使用何种视图显示项目,比如ComponentOne的List控件有齐全的列表框和多列的下拉列表框、拆分样式等。可管理列表中项目的芦宏排序方法和选定项目的外观。 列橘雀轮表的意思是:把什么制成表,以表显示。 以表格为容器,装载着文字或图表的一种形式,叫列表。在互联网发展的同时,还衍生了一种在以网上形式发表的列表。简称“网表”。 上面可以用的。 stati}完成。c int m_bAsc, m_SortColumn;//写在类外面 static int CALLBACK MyCompareProc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort);//在头文件中声明 /该方法添加ListItem对象到ListView控件的ListItems中并返回对新创建对象的引用。/若strcmp报错,将其RAID的几种工作模式改为_tcscmp 在VB.NET中,您可以通过创建一个类来实现System.Collections.IComparer接口,实现ListView控件的排序功能。具体实现是:创建该类的实例,赋予给ListView1控件对象的ListViewItemSorter属性,然后在ListView的ColumnClick句柄(ListView1_ColumnClick)中添加代码实现按点击列排序。 下面提供一段示例代码功能参考,请根据您的系统的实际情况进行相应的修改: Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick ListView1.Sorting = SortOrder.Ascending Dim Sorter = New ListViewSortListItems -对象行er(e.Column) ListView1.ListViewItemSorter = Sorter End Sub Public Class ListViewSorter Implements System.Collections.IComparer Public SortIndex As Integer Public Sub New(ByVal SortIndex As Integer) Me.SortIndex = SortIndex End Sub //这里只考虑按数值排序 Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare Dim x1, y1 As ListViewItem Dim intx, inty As Integer x1 = x y1 = y intx = ParseListItemString(x1.SubItems(SortIndex).ToString()) inty = ParseListItemString(y1.SubItems(SortIndex).ToString()) If (intx < inty) Then Return 调用load-1 ElseIf (intx = inty) Then Return 0 Return 1 End Function Private Function ParseListItemString(ByVal x As String) As Integer counter = 0 For i = x.Length - 1 To 0 Step -1 If (x.Chars(i) = "{") Then Exit For counter = counter + 1 Next i Return CInt((x.Substring(x.Length - counter, counter - 1))) End Function End Class 设ListView的名称为ListView1 ListView1.SortKey = 1 ListView1.SortOrder = lvwAscending(升序)或lvwDescending (降序) ListView1.Sorted = True RAID 0 不能应用于数据安全性要求高的场合。好狂vb中控件listview的详细使用
form2 f2= new form2();lines是列表类型吗
FindItem:搜索ListItem对象。listview控件的用法是什么?
报表 View 属性决定在列表中控件使用何种视图显示项目。比如ComponentOne的List控件有齐全的列表框和多列的下拉列表框,拆分样式等.可管理列表中项目的排序方法和告缺选定项目的外观。C#刷新窗体
HitTest:检索位于特定坐标处的ListItem对象。列表什么意思
Fnewmfc关于列表控件的排序问题
listview的排序功能是怎么实现的
ListView控件比前面几种控件要复杂一些,通过此控件,可将项目组成带有或不带有列标头的列,并显示伴随的图标和文本。ListView控件是由ColumnHeader和ListItem对象所组成的,其中ColumnHeader对象的个数决定了控件的列数,而ListItem对象的个数则决定了控件的行数。(图7)VB里 列表视图里项的自动排序问题
就调用了load
河北移动校讯通平台 河北移动校讯通登录入口
您好,今天天天来为大家解答以上的问题。河北移动校讯通平台相信很多小伙伴还不知道,现在让我们一起来看看吧! 河北移动校讯通平台 河北移动校讯通登录入口 河北移动校讯通平台 河北移动校···
我是特种兵之利刃出鞘片尾曲 我是特种兵之利
关于我是特种兵之利刃出鞘片尾曲,我是特种兵之利刃出鞘片尾曲视频这个很多人还不知道,今天怡怡来为大家解答以上的问题,现在让我们一起来看看吧! 1、悠远的号声依稀听见特种兵之霹雳火···
焦裕禄买煤是哪一集 焦裕禄买煤被刁难
今天小周来给大家分享一些关于焦裕禄买煤被刁难方面的知识吧,希望大家会喜欢哦 焦裕禄买煤是哪一集 焦裕禄买煤被刁难 焦裕禄买煤是哪一集 焦裕禄买煤被刁难 1、请求他们立即捐献粮食和副···