1. 程式人生 > >C#ListView詳解(一)

C#ListView詳解(一)

ListView詳解
    分三篇進行講解

1.講解ListView類的成員。

2.通過demo進行說明相關成員。

3.通過demo進行說明DragDrop的操作。

ListView詳解

一、屬性(僅限常用)
1.View獲取或設定項在控制元件中的顯示方式。
1.1LargeIcon 最大化圖示,下面有一個標籤ListViewItem.Text屬性
2.Details每個項顯示在不同的行上,並帶有關於列中所排列的各項的進一步資訊。
3.SmallIcon每個項都顯示為一個小圖示,在它的右邊帶一個標籤。
4.List每個項都顯示為一個小圖示,在它的右邊帶一個標籤。各項排列在列中,沒有列標頭。
5.Tile每個項都顯示為一個完整大小的圖示,在它的右邊帶項標籤和子項資訊。



    2.Alignment  獲取或設定控制元件中項的對齊方式,只使用於View.LargeIcon和View.SmallIcon。
menu:Left左到右排列,Top從上到下排列


    3.AllowColumnReorder 獲取或設定一個值,該值指示使用者是否可拖動列標題來對控制元件中的列重新排序。
適用於View.Details,預設為false
4.AutoArrange
獲取或設定圖示是否自動進行排列。
5.CheckBoxes
獲取或設定一個值,該值指示控制元件中各項的旁邊是否顯示覆選框。
預設值為false
6.CheckedIndices
使用該屬性,建議將CheckIndex設定為true,否則返回的CheckIndexCollection.Count永遠為0
獲取控制元件中當前選中項的索引。
返回值為CheckedIndexCollection
CheckedIndexCollection類屬性
6.1Count 獲取集合中項的數目。
6.2this[int index]支援索引
6.GetEnumerator()支援遍歷
7.CheckedItems
獲取控制元件中當前選中的項。
8.Columns
獲取控制元件中顯示的所有列標題的集合。
屬性設定為View.Details 時顯示的列標題。
9.FocusedItem
獲取或設定當前具有焦點的控制元件中的項
10FullRowSelect
獲取或設定一個值,該值指示單擊某項是否選擇其所有子項。
適用於View.Details
11GridLines:
設定行和列之間是否顯示網格線。(預設為false)提示:只有在Details檢視該屬性才有效。
12Groups
 獲取分配給控制元件的 System.Windows.Forms.ListViewGroup 物件的集合。
13HeaderStyle
獲取或設定列標題樣式。
ColumnHeaderStyle.None列標頭在報表檢視中不顯示。
ColumnHeaderStyle.Nonclickable 列標頭不響應滑鼠單擊。
ColumnHeaderStyle.Clickable列標頭的作用類似於按鈕,單擊時可以執行操作(例如排序)。
14.InsertionMark
獲取一個物件,在 System.Windows.Forms.ListView 控制元件內拖動項時,該物件用來指示預期的放置位置。
返回值ListViewInsertionMark
14.1AppearsAfterItem
獲取或設定一個值,該值指示是否在項的右側顯示插入標記,該項帶有 System.Windows.Forms.ListViewInsertionMark.Index屬性指定的索引。
14.2Index 
獲取或設定與插入標記旁邊的項的索引。
14.3NearestIndex
檢索距離指定點最近的項的索引。
15.Items
獲取包含控制元件中所有項的集合。
16.LabelEdit
獲取或設定一個值,該值指示使用者是否可以編輯控制元件中項的標籤。
17.LargeImageList
獲取或設定當項以大圖示在控制元件中顯示時使用的 System.Windows.Forms.ImageList
18.SmallImageList
獲取或設定當項以大圖示在控制元件中顯示時使用的 System.Windows.Forms.ImageList
19.ListViewItemSorter
獲取或設定用於控制元件的排序比較器。
20.MultiSelect
獲取或設定一個值,該值指示是否可以選擇多個項。
21.RightToLeftLayout
獲取或設定一個值,該值指示控制元件是否採用從右到左的佈局。
預設為false
22.Scrollable
獲取或設定一個值,該值指示在沒有足夠空間來顯示所有項時,是否給滾動條新增控制元件。
23.SelectedIndices
獲取控制元件中選定項的索引集合。
24.SelectedItems
獲取在控制元件中選定的項的集合。
25.ShowGroups
獲取或設定一個值,該值指示是否以分組方式顯示項。
預設未進行分組,所有的ListViewItem預設分組為default
26.ShowItemToolTips
System.Windows.Forms.ListView 中包含的System.Windows.Forms.ListViewItem物件顯示工具提示。
27.Sorting
獲取或設定控制元件中項的排序順序。
28.StateImageList
獲取或設定與控制元件中應用程式定義的狀態相關的 System.Windows.Forms.ImageList。
29.TileSize
獲取或設定平鋪檢視中顯示的圖塊的大小。

函式:
1.AutoResizeColumn
按照大小調整樣式的指示,調整給定列的寬度。
2.AutoResizeColumns
按照大小調整樣式的指示,調整列的寬度。
3.BeginUpdate
由於控制元件,在進行屬性修改和操作基礎資料時的需要重新繪製自身。
使用BeginUpdate和EndUpdate方法,可以對控制元件進行修改,並且可以取消這些引用更改時,讓控制元件重新繪製自身問題。
在使用EndUpdate方法後,只進行一次重新繪製即可。
重新繪製會導致效能顯著降低,並且使用者介面閃爍且不反應。
4.EndUpdate
5.Clear()
從控制元件中移除所有項和列。
6.FindItemWithText
overload 函式過載
查詢以指定文字值開頭的第一個 System.Windows.Forms.ListViewItem。
7.FindNearestItem
overload 函式過載
按照指定的搜尋方向,從給定點開始查詢下一個項。
8.GetItemAt
檢索位於指定位置的項。

父類函式
1.DoDragDrop
開始拖放操作。
引數
1.data要拖動的資料。
2.DragDropEffects 指定拖放操作的可能效果,Menu
2.1Scroll 拖動時可以滾動目標,以定位在目標中當前不可見的某個放置位置。
2.2AllSystem.Windows.DragDropEffects.Copy、System.Windows.Forms.DragDropEffects.Move和 System.Windows.Forms.DragDropEffects.Scroll 效果的組合。
2.3None 放置目標不接受該資料。
2.4Copy將拖動源中的資料複製到放置目標。
2.5Move將拖動源的資料移動到放置目標。
2.6Link 將拖動源中的資料鏈接到放置目標。

當ListViewItem發生DragDrop時的事件觸發順序
1.ItemDrag 當用戶開始拖動項時發生
2.DragEnter 在將物件拖入控制元件的邊界時發生
3.DragOver 在將物件拖到控制元件的邊界上發生 
4.DragLeave 在將物件拖出控制元件的邊界時發生。
5.DragDrop 在完成拖放操作時發生。