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

Dec 13, 2016 pm 04:09 PM

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用法详解

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

c#.netインタビューの質問と回答:専門知識を高める c#.netインタビューの質問と回答:専門知識を高める Apr 07, 2025 am 12:01 AM

C#.NETインタビューの質問と回答には、基本的な知識、コアの概念、高度な使用が含まれます。 1)基本知識:C#は、Microsoftが開発したオブジェクト指向言語であり、主に.NETフレームワークで使用されています。 2)コアの概念:委任とイベントは動的な結合方法を可能にし、LINQは強力なクエリ関数を提供します。 3)高度な使用:非同期プログラミングは応答性を向上させ、式ツリーは動的コード構造に使用されます。

C#.NET:コアの概念とプログラミングの基礎を探る C#.NET:コアの概念とプログラミングの基礎を探る Apr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテスト テストC#.NETアプリケーション:ユニット、統合、およびエンドツーエンドテスト Apr 09, 2025 am 12:04 AM

C#.NETアプリケーションのテスト戦略には、ユニットテスト、統合テスト、エンドツーエンドテストが含まれます。 1.単位テストにより、コードの最小ユニットがMSTEST、ヌニット、またはXUNITフレームワークを使用して独立して動作することを保証します。 2。統合テストでは、一般的に使用されるシミュレートされたデータと外部サービスを組み合わせた複数のユニットの機能を検証します。 3.エンドツーエンドのテストでは、ユーザーの完全な操作プロセスをシミュレートし、通常、セレンは自動テストに使用されます。

Webからデスクトップまで:C#.NETの汎用性 Webからデスクトップまで:C#.NETの汎用性 Apr 15, 2025 am 12:07 AM

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

c#.netの継続的な関連性:現在の使用法を見る c#.netの継続的な関連性:現在の使用法を見る Apr 16, 2025 am 12:07 AM

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース 高度なC#.NETチュートリアル:次のシニア開発者インタビューをエース Apr 08, 2025 am 12:06 AM

C#シニア開発者とのインタビューでは、非同期プログラミング、LINQ、.NETフレームワークの内部作業原則などのコア知識をマスターする必要があります。 1.非同期プログラミングは、非同期を通じて操作を簡素化し、アプリケーションの応答性を向上させるのを待ちます。 2.LinqはSQLスタイルでデータを操作し、パフォーマンスに注意を払います。 3.ネットフレームワークのCLRはメモリを管理し、ガベージコレクションに注意して使用する必要があります。

c#.netはあなたにぴったりですか?その適用性の評価 c#.netはあなたにぴったりですか?その適用性の評価 Apr 13, 2025 am 12:03 AM

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

汎用性のある.NET言語としてのC#:アプリケーションと例 汎用性のある.NET言語としてのC#:アプリケーションと例 Apr 26, 2025 am 12:26 AM

C#は、エンタープライズレベルのアプリケーション、ゲーム開発、モバイルアプリケーション、Web開発で広く使用されています。 1)エンタープライズレベルのアプリケーションでは、C#がasp.netcoreにWebAPIを開発するためによく使用されます。 2)ゲーム開発では、C#がUnityエンジンと組み合わされて、ロールコントロールやその他の機能を実現します。 3)C#は、コードの柔軟性とアプリケーションのパフォーマンスを改善するために、多型と非同期プログラミングをサポートします。

See all articles