ListViewItemStates 列挙体
この列挙体には、メンバ値のビットごとの組み合わせを可能にする FlagsAttribute 属性が含まれています。
名前空間: System.Windows.Formsアセンブリ: System.Windows.Forms (system.windows.forms.dll 内)
構文
<FlagsAttribute> _ Public Enumeration ListViewItemStates
メンバ名 | 説明 | |
---|---|---|
Checked | 項目がチェックされています。 | |
Default | 項目が既定の状態です。 | |
Focused | 項目にフォーカスがあります。 | |
Grayed | 項目が無効です。 | |
Hot | 項目の上にマウス ポインタがあります。 | |
Indeterminate | 項目が中間状態です。 | |
Marked | 項目がマークされています。 | |
Selected | 項目が選択されています。 | |
ShowKeyboardCues | 項目にショートカット キーが表示されます。 |
この列挙体は、DrawListViewItemEventArgs.State プロパティおよび DrawListViewSubItemEventArgs.ItemState プロパティで使用されます。詳細については、ListView.DrawItem イベントおよび ListView.DrawSubItem イベントのトピックを参照してください。
ListView コントロールのカスタム描画を提供する方法を示す例を次に示します。例の中の ListView コントロールには、グラデーションの背景が使用されています。負の値を持つサブ項目は、赤の前景色と黒の背景色で表されます。
ListView.DrawItem イベントのハンドラは、項目全体および列ヘッダーの行の背景を描画します。ListView.DrawSubItem イベントのハンドラは、テキスト値を描画し、負の値を持つサブ項目についてはテキストと背景の両方を描画します。
ContextMenu コンポーネントは、詳細ビューとリストの切り替えを行う手段を提供します。リスト ビューでは、ListView.DrawItem イベントのみが発生します。この場合、ListView.DrawItem イベント ハンドラでテキストと背景の両方が描画されます。
詳細については、ListView.OwnerDraw のリファレンス トピックを参照してください。
' Draws the backgrounds for entire ListView items. Private Sub listView1_DrawItem(ByVal sender As Object, _ ByVal e As DrawListViewItemEventArgs) _ Handles listView1.DrawItem If Not (e.State And ListViewItemStates.Selected) = 0 Then ' Draw the background for a selected item. e.Graphics.FillRectangle(Brushes.Maroon, e.Bounds) e.DrawFocusRectangle() Else ' Draw the background for an unselected item. Dim brush As New LinearGradientBrush(e.Bounds, Color.Orange, _ Color.Maroon, LinearGradientMode.Horizontal) Try e.Graphics.FillRectangle(brush, e.Bounds) Finally brush.Dispose() End Try End If ' Draw the item text for views other than the Details view. If Not Me.listView1.View = View.Details Then e.DrawText() End If End Sub
// Draws the backgrounds for entire ListView items. private void listView1_DrawItem(object sender , DrawListViewItemEventArgs e) { if ((e.State & ListViewItemStates.Selected) != 0) { // Draw the background and focus rectangle for a selected item. e.Graphics.FillRectangle(Brushes.Maroon, e.Bounds); e.DrawFocusRectangle(); } else { // Draw the background for an unselected item. using (LinearGradientBrush brush = new LinearGradientBrush(e.Bounds, Color.Orange, Color.Maroon, LinearGradientMode.Horizontal)) { e.Graphics.FillRectangle(brush, e.Bounds); } } // Draw the item text for views other than the Details view. if (listView1.View != View.Details) { e.DrawText(); } }
// Draws the backgrounds for entire ListView items. private: void listView1_DrawItem( Object^ /*sender*/, DrawListViewItemEventArgs^ e ) { if ( (e->State & ListViewItemStates::Selected) != (ListViewItemStates)0 ) { // Draw the background for a selected item. e->Graphics->FillRectangle( Brushes::Maroon, e->Bounds ); e->DrawFocusRectangle(); } else { // Draw the background for an unselected item. LinearGradientBrush^ myBrush = gcnew LinearGradientBrush( e->Bounds,Color::Orange,Color::Maroon,LinearGradientMode::Horizontal ); try { e->Graphics->FillRectangle( myBrush, e->Bounds ); } finally { if ( myBrush ) delete (IDisposable^)myBrush; } } if ( listView1->View != View::Details ) { e->DrawText(); } }
// Draws the backgrounds for the column header row and for entire // ListView items. private void myListView_DrawItem(Object sender, DrawListViewItemEventArgs e) { // Draw the background for the column header row. if (e.get_ItemIndex() == -1) { e.get_Item().set_BackColor(Color.get_Black()); e.DrawBackground(); } // Draw the background for a selected item. else { if (Convert.ToInt32((e.get_State() & ListViewItemStates.Selected)) != 0) { e.get_Graphics().FillRectangle(Brushes.get_Maroon(), e.get_Bounds()); e.DrawFocusRectangle(); } // Draw the background for an unselected item. else { LinearGradientBrush myBrush = new LinearGradientBrush( e.get_Bounds(), Color.get_Orange(), Color.get_Maroon(), LinearGradientMode.Horizontal); try { e.get_Graphics().FillRectangle(myBrush, e.get_Bounds()); } finally { myBrush.Dispose(); } } } // Draw the item text for views other than the Details view. if (!(((ListView)sender).get_View().Equals(View.Details))) { e.DrawText(); } } //myListView_DrawItem
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- ListViewItemStates 列挙体のページへのリンク