using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.windows.forms;
using system.data;
////// 重置listview集合
//////
public void reset(ilistl)
this.virtuallistsize = this.currentcacheitemssource.count;
}////// 虛擬模式事件
//////
///private void listview_retrievevirtualitem(object sender, retrievevirtualitemeventargs e)
listviewitem lv = this.currentcacheitemssource[e.itemindex];
e.item = lv;
}////// 獲取選中的第一行的指定tag值
//////
///public string firstselectitemvalue(string key)
////// 獲取列名的索引
//////
///public int getcolumnsindex(string key)
}return i;
}////// 獲取選中項
//////
public listgetselectitem()
return l;
}////// 獲取選中行的某列集合
//////
///public listgetlistviewfield(string key)
return ids;
}private listviewitemcomparer mysorter;
////// 排序
//////
protected override void oncolumnclick(columnclickeventargs e)
else
else
}else
this.mysorter.dbtype = dbtype;
this.currentcacheitemssource.sort(this.mysorter);
this.invalidate();}}
#endregion
#region 普通模式下排序
/*普通模式下排序
public void reloadcolumn()
protected override void oncolumnclick(columnclickeventargs e)
else
else
}else
comparer.dbtype = dbtype;
//僅僅改變了listviewitemsorter屬性值,這裡不會自動呼叫sort()方法,需要顯式指定執行sort()方法實現排序。
this.sort();}}
*/#endregion
#region listview排序邏輯
////// listview排序邏輯
///private class listviewitemcomparer : system.collections.generic.icomparer
public listviewitemcomparer(int column)
: this()
//////
//////哪列
///排序方式
///型別
public listviewitemcomparer(int column, sortorder sortorder, string dbtype)
: this(column)
#region icomparer 成員
public int compare(listviewitem x, listviewitem y)
catch (exception ex)
switch (dbtype)
else
break;
case "double":
double d1 = fn.isdouble(c1, 0);
double d2 = fn.isdouble(c2, 0);
if (d1 == d2)
result = 0;
else if (d1 < d2)
result = -1;
else
result = 1;
break;
default:
result = string.compare(c1, c2);
break;
}if (this.order == sortorder.ascending)
else if (this.order == sortorder.descending)
else
}#endregion
////// 當前排序列
///public int sortcolumn
////// 當前列排序方式
///public sortorder order
}#endregion
public void fill_lv(dataset ds)
listlstitem = new list();
foreach (datarow dr in table.rows)
listviewitem lst1 = new listviewitem(str, 0);
= convert.toint32(dr["ste"]);
lstitem.add(lst1);
}addlvrow(lstitem);
}this.autoresizecolumns(columnheaderautoresizestyle.headersize);
this.columns[this.columns.count - 1].width -= 50;
}protected void addlvcol(string pname, string ptag, string ptext, int pwidth)
protected void addlvrow(listlvitem)
}public static class fn
catch (system.exception ex)
}public static double isdouble(object obj1, double d1)
catch (system.exception ex)
}public static datetime isdate(object obj1, datetime dattim1)
catch (system.exception ex)}}
}
使用方法:
public partial class form1 : form
private void form1_load(object sender, eventargs e)
}
ListView虛擬模式封裝
1 public class listviewah listviewex210 11public listviewah 1217 18 19 重置listview集合 20 21 22public void reset ilistitems 2334 35 this.virtuallistsize ...
ListView的使用方式
listview是安卓裡最難用的控制項之一 在安卓裡建立listview的方式有兩種 1.在layout布局檔案中定義listview控制項2.直接讓activity繼承listactivity 首先先採用繼承listactivity 1.建立乙個arrayadatertest 2.在activit...
ListView控制項使用
在.h中 clistctrl m listctrl 在.cpp中 新增listctrl標題 m listctrl.insertcolumn 0,t 標題 lvcfmt center 第一欄設定center屬性不能成功 m listctrl.setcolumnwidth 0,200 m listctr...