ホームページ > バックエンド開発 > C#.Net チュートリアル > C# ListViewの使い方を詳しく解説

C# ListViewの使い方を詳しく解説

高洛峰
リリース: 2016-12-13 16:09:09
オリジナル
2492 人が閲覧しました

I I. ListViewクラス

1. よく使われる基本属性:

(1) FullRowSelect: 選択モードを選択するかどうかを設定します。 (デフォルトは false) ヒント: このプロパティは、詳細ビューでのみ意味を持ちます。

(2) GridLines: 行と列の間にグリッド線を表示するかどうかを設定します。 (デフォルトは false) ヒント: このプロパティは、詳細ビューでのみ意味を持ちます。

(3)AllowColumnReorder: 列ヘッダーをドラッグして列の順序を変更できるかどうかを設定します。 (デフォルトは false) ヒント: このプロパティは、詳細ビューでのみ意味を持ちます。


(4) View: 詳細、LargeIcon、List、SmallIcon、Tile を含むコントロール内の項目の表示モードを取得または設定します (デフォルトは LargeIcon)


(5) MultiSelect: 複数の項目を選択できるかどうかを設定します。 (デフォルトは false)

(6) HeaderStyle: 列ヘッダーのスタイルを取得または設定します。 B クリッカブル:列ヘッダーの役割がボタンに似ており、クリックするとソートなどの操作が可能です。

NonClickable: 列ヘッダーはマウスのクリックに反応しません。 NONE: リストヘッダーなし。

(7) LabelEdit: ユーザーがコントロール内の項目のラベルを編集できるかどうかを設定します。詳細ビューの場合、行の最初の列の内容のみを編集できます。 (デフォルトはfalse)

(8)チェックボックス:制御内の各アイテムの横にチェックボックスを表示するかどうかを設定します。 (デフォルトは false)

(9) LargeImageList: 大きなアイコンセット。ヒント: LargeIcon ビューでのみ使用されます。

(10) SmallImageList: 小さなアイコンセット。ヒント: SmallIcon ビューでのみ使用されます。

(11) StateImageList: 画像マスク。これらのイメージ マスクは、LargeImageList イメージと SmallImageList イメージのオーバーレイとして使用でき、項目のアプリケーション定義の状態を示すために使用できます。 (まだ理解できていません)

(12) SelectedItems: コントロール内で選択されている項目を取得します。

(13) CheckedItems: コントロールの現在のチェック ボックスで選択されている項目を取得します。

(14)並べ替え: リストビューで項目を並べ替えます。 (デフォルトはなし)

降順:項目は降順に並べられます。

なし: アイテムは並べ替えられません。

(15) スクロール可能: すべての項目を表示するのに十分なスペースがない場合に、スクロール バーを表示するかどうかを設定します。 (デフォルトは真)

(16)ホバーセレクション:マウスポインターがその上にホールしたときにアイテムを自動的に選択するかどうかを設定します。 (デフォルトは false)

(17) HotTracking: マウスポインターが項目テキストを通過するときに、マウスポインターの外観がハイパーリンクの形式に変化するかどうかを設定します。 (デフォルトは false)

(18) HideSelection: コントロールにフォーカスがないときに、選択された項目が引き続き強調表示されるかどうかを設定します。 (デフォルトはfalse)

(19)showgroups:グループにアイテムを表示するかどうかを設定します。 (デフォルトは false);

(20) グループ: グループ化されたオブジェクトのコレクションを設定します。

(21) TopItem: 位置決めに使用できる、コントロール内の最初に表示される項目を取得または設定します。 (効果は EnsureVisible メソッドと似ています)

2. よく使用されるメソッド:

(1) BeginUpdate: EndUpdate メソッドを呼び出す前にコントロールを記述することは避けてください。大量のデータを挿入する場合、コントロールのちらつきを効果的に回避し、速度を大幅に向上させることができます。

(2) EndUpdate: BeginUpdate メソッドで記述が中断された後、リスト ビュー コントロールの記述を続けます。 (更新終了)

(3) EnsureVisible: リスト ビューは、指定されたインデックス アイテムのアイテム行までスクロールします。 (効果は TopItem プロパティと似ています) (4) FindItemWithText: 指定されたテキスト値で始まる最初の ListViewItem を検索します。

(5) FindNearestItem: 指定された検索方向に従って、指定された点から開始して次のアイテムを検索します。ヒント: このメソッドは、LargeIcon ビューまたは SmallIcon ビューでのみ使用できます。


3. よく使用されるイベント:

(1) AfterLabelEdit: ユーザーがアイテムのラベルの編集を終了したときに発生し、LabelEdit 属性が true である必要があります。

(2) BeforeLabelEdit: ユーザーがアイテムのラベルの編集を開始すると発生します。

(3) ColumnClick: ユーザーがリスト ビュー コントロールの列ヘッダーをクリックすると発生します。

2. ListView の 5 つのビュー:

1. LargeIcon: 各項目は、その下にラベルが付いた最大化されたアイコンとして表示されます。 (効果については下の図を参照してください)

2. SmallIcon: 各項目は右側にラベルが付いた小さなアイコンとして表示されます。 (効果については下の写真を参照してください)

3. リスト: 各項目は右側にラベルが付いた小さなアイコンとして表示されます。項目は列に配置され、列ヘッダーはありません。 (効果については、下の図を参照してください) 4. 詳細: どの列も表示できますが、小さなアイコンとラベルを含めることができるのは最初の列のみであり、他の列項目にはテキスト情報のみが表示され、列ヘッダーを持つことができます。 (効果については下の写真を参照してください)

5. タイル: 各項目はフルサイズのアイコンとして表示され、その右側に項目ラベルとサブ項目情報が表示されます。 (Windows XP および Windows Server 2003 シリーズのみサポート)

①詳細ビュー:

this.listView1.SmallImageList = this.imageList1 //listView のアイコン セットを imageList1 にバインドします

(1) リスト ヘッダーの作成 (覚えておいてください)最初に列ヘッダーを作成する必要があります)

ColumnHeader  ch= new ColumnHeader(); 
 
nbsp;ch.Text = "列标题1";   //设置列标题 
 
ch.Width = 120;    //设置列宽度 
 
ch.TextAlign = HorizontalAlignment.Left;   //设置列的对齐方式 
 
this.listView1.Columns.Add(ch);    //将列头添加到ListView控件。
ログイン後にコピー
RREEEEE

または

Rreee

ColumnHeader  ch= new ColumnHeader();  
  
ch.Text = "列标题1";   //设置列标题  
  
ch.Width = 120;    //设置列宽度  
  
ch.TextAlign = HorizontalAlignment.Left;   //设置列的对齐方式  
  
this.listView1.Columns.Add(ch);    //将列头添加到ListView控件。
ログイン後にコピー
e

(2) データ項目の追加

rrreerReeeee

(3) 表示項目

R

this.listView1.Columns.Add("列标题1", 120,  HorizontalAlignment.Left); //一步添加
ログイン後にコピー
ログイン後にコピー
ERREEEE

(4) 特定の

RrreeRreeeeee を削除 (5) 高設定 (Imageelist を使用して実現) )

this.listView1.Columns.Add("列标题1", 120,  HorizontalAlignment.Left); //一步添加
ログイン後にコピー
ログイン後にコピー
this.listView1.BeginUpdate();   //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度 
 
for (int i = 0; i < 10; i++)   //添加10行数据 
{ 
     ListViewItem lvi = new ListViewItem(); 
 
     lvi.ImageIndex = i;     //通过与imageList绑定,显示imageList中第i项图标 
 
     lvi.Text = "subitem" + i; 
 
     lvi.SubItems.Add("第2列,第"+i+"行"); 
 
     lvi.SubItems.Add("第3列,第"+i+"行"); 
 
     this.listView1.Items.Add(lvi); 
} 
 
this.listView1.EndUpdate();  //结束数据处理,UI界面一次性绘制。
ログイン後にコピー

(6) クリア

this.listView1.BeginUpdate();   //数据更新,UI暂时挂起,直到EndUpdate绘制控件,可以有效避免闪烁并大大提高加载速度  
  
for (int i = 0; i < 10; i++)   //添加10行数据  
{  
    ListViewItem lvi = new ListViewItem();  
  
    lvi.ImageIndex = i;     //通过与imageList绑定,显示imageList中第i项图标  
  
    lvi.Text = "subitem" + i;  
  
    lvi.SubItems.Add("第2列,第"+i+"行");  
  
    lvi.SubItems.Add("第3列,第"+i+"行");  
  
    this.listView1.Items.Add(lvi);  
}  
  
this.listView1.EndUpdate();  //结束数据处理,UI界面一次性绘制。
ログイン後にコピー
foreach (ListViewItem item in this.listView1.Items) 
{ 
      for (int i = 0; i < item.SubItems.Count; i++) 
      { 
          MessageBox.Show(item.SubItems[i].Text); 
      } 
}
ログイン後にコピー

ランニングエフェクト:

②largeIcon view:

foreach (ListViewItem item in this.listView1.Items)  
{  
      for (int i = 0; i < item.SubItems.Count; i++)  
      {  
          MessageBox.Show(item.SubItems[i].Text);  
      }  
}
ログイン後にコピー
foreach (ListViewItem lvi in listView1.SelectedItems)  //选中项遍历 
{ 
      listView1.Items.RemoveAt(lvi.Index); // 按索引移除 
      //listView1.Items.Remove(lvi);   //按项移除 
}
ログイン後にコピー

ランニングエフェクト:

C# ListView用法详解

③SmallIcon view:

foreach (ListViewItem lvi in listView1.SelectedItems)  //选中项遍历  
{  
      listView1.Items.RemoveAt(lvi.Index); // 按索引移除  
      //listView1.Items.Remove(lvi);   //按项移除  
}
ログイン後にコピー
rree

ランニングエフェクト:

C# ListView用法详解

④リストビュー:

ImageList imgList = new ImageList(); 
 
imgList.ImageSize = new Size(1, 20);// 设置行高 20 //分别是宽和高 
 
listView1.SmallImageList = imgList; //这里设置listView的SmallImageList ,用imgList将其撑大
ログイン後にコピー
ImageList imgList = new ImageList();  
  
imgList.ImageSize = new Size(1, 20);// 设置行高 20 //分别是宽和高  
  
listView1.SmallImageList = imgList; //这里设置listView的SmallImageList ,用imgList将其撑大
ログイン後にコピー

操作効果:

C# ListView用法详解

3. その他のアプリケーション

1. グループ化: C# ListView用法详解

this.listView1.Clear();  //从控件中移除所有项和列(包括列表头)。 
 
this.listView1.Items.Clear();  //只移除所有的项。
ログイン後にコピー
this.listView1.Clear();  //从控件中移除所有项和列(包括列表头)。  
  
this.listView1.Items.Clear();  //只移除所有的项。
ログイン後にコピー

操作効果:


2. テキストの検索 (一致するもののみが見つかります)プレフィックス缶最初に一致する項目を選択してください):

this.listView1.View = View.LargeIcon; 
 
this.listView1.LargeImageList = this.imageList2; 
 
this.listView1.BeginUpdate(); 
 
for (int i = 0; i < 10; i++) 
{ 
      ListViewItem lvi = new ListViewItem(); 
 
      lvi.ImageIndex = i; 
 
      lvi.Text = "item" + i; 
 
      this.listView1.Items.Add(lvi); 
} 
 
this.listView1.EndUpdate();
ログイン後にコピー

C# ListView用法详解

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート