ListView虛擬模式封裝

2022-04-30 22:15:18 字數 4066 閱讀 6732

1

public

class

listviewah : listviewex210

11public

listviewah()

1217

18///

19///

重置listview集合

20///

21///

22public

void reset(ilistitems)

2334}35

this.virtuallistsize = this

.currentcacheitemssource.count;36}

37else

38this.virtuallistsize = 0;39

}4041///

42///

追加項43

///44

///45

public

4652

foreach ( var item in

l )53

56this.virtuallistsize = this

.currentcacheitemssource.count;57}

5859

///60

///清空所有項

61///

62public

void

clearallitem()

6368

this

.currentcacheitemssource.clear();

69this.virtuallistsize = this

.currentcacheitemssource.count;70}

7172

///73

///移除當前選中的項

74///

75///

76public

void removelistviewitem(ilistl)

7782

foreach ( var item in

l )83

86this.virtuallistsize = this

.currentcacheitemssource.count;87}

8889

///90

///虛擬模式事件

91///

92///

93///

94private

void listview_retrievevirtualitem(object

sender , retrievevirtualitemeventargs e)

95100

101 listviewitem lv = this

.currentcacheitemssource[e.itemindex];

102 e.item =lv;

103}

104105

///106

///獲取選中的第一行的文字值

107///

108///

109///

110public

string firstselectitemvalue(string

key)

111116

117///

118///

獲取列名的索引

119///

120///

121///

122public

int getcolumnsindex(string

key)

123131

}132

133return

i;134

}135

136///

137///

獲取選中項

138///

139///

140public listgetselectitem()

141148

return

l;149

}150

151///

152///

獲取選中行的某列集合

153///

154///

155///

156public list getlistviewfield(string

key)

157165

return

ids;

166}

167168

private

listviewitemcomparer mysorter;

169///

170///

排序171

///172

///173

protected

override

void

oncolumnclick(columnclickeventargs e)

174181

else

182189

else

190193

}194

else

195199

200this.currentcacheitemssource.sort(this

.mysorter);

201202

this

.invalidate();

203}

204}

205#endregion

206207

#region listview排序邏輯

208///

209///

listview排序邏輯

210///

211private

class listviewitemcomparer : system.collections.generic.icomparer212

218219

public listviewitemcomparer(int

column)

220 : this

()221

224225

///226

///227

///228

///哪列

229///

排序方式

230public listviewitemcomparer(int

column , sortorder sortorder)

231 : this

(column)

232235

236#region icomparer 成員

237public

intcompare(listviewitem x , listviewitem y)

238248

catch

( exception ex )

249253 result = string

.compare(c1 , c2);

254if ( this.order ==sortorder.ascending )

255258

else

if ( this.order ==sortorder.descending )

259262

else

263266

}267

#endregion

268269

///270

///當前排序列

271///

272public

intsortcolumn

273277

278///

279///

當前列排序方式

280///

281public

sortorder order

282286

}287

#endregion

288 }

view code

使用listview普通模式載入大資料,會比較慢,即時使用執行緒載入,也會出現不斷的重新整理,故用虛擬模式下載入,速度快

本例中繼承第三方控制項的listviewex控制項,也可以繼承系統自帶的listview

ListView虛擬模式的使用

using system using system.collections.generic using system.linq using system.text using system.windows.forms using system.data 重置listview集合 public voi...

虛擬機器的封裝

本次是對rhel7.6虛擬機器系統的封裝 cat etc redhat release 檢視本機的系統版本 hostnamectl red hat公司發布的面向企業使用者的linux作業系統。oracle enterprise linux是美國甲骨文公司基於rhel依照開源規定發布的源 所編譯而成的...

Datagridview 虛擬模式

把資料放到datatable中 datatable c dtdttble null public datatable getdataset 動態新增datagridview列標題 private void form1 load object sender,eventargs e 填充單元格資料 pr...