DrawListViewSubItemEventArgs.SubItem プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
描画する ListViewItem.ListViewSubItem を取得します。
public:
property System::Windows::Forms::ListViewItem::ListViewSubItem ^ SubItem { System::Windows::Forms::ListViewItem::ListViewSubItem ^ get(); };
public System.Windows.Forms.ListViewItem.ListViewSubItem SubItem { get; }
public System.Windows.Forms.ListViewItem.ListViewSubItem? SubItem { get; }
member this.SubItem : System.Windows.Forms.ListViewItem.ListViewSubItem
Public ReadOnly Property SubItem As ListViewItem.ListViewSubItem
プロパティ値
描画する ListViewItem.ListViewSubItem。
例
次のコード例では、コントロールのカスタム描画を SubItem 提供するアプリケーションで プロパティを使用する方法を ListView 示します。 この例では、 イベントの ListView.DrawSubItem ハンドラーによって、負の値を持つサブ項目のサブ項目テキスト値とテキストと背景の両方が描画されます。
完全な例については、概要のリファレンス トピックを DrawListViewSubItemEventArgs 参照してください。
// Draws subitem text and applies content-based formatting.
private void listView1_DrawSubItem(object sender,
DrawListViewSubItemEventArgs e)
{
TextFormatFlags flags = TextFormatFlags.Left;
using (StringFormat sf = new StringFormat())
{
// Store the column text alignment, letting it default
// to Left if it has not been set to Center or Right.
switch (e.Header.TextAlign)
{
case HorizontalAlignment.Center:
sf.Alignment = StringAlignment.Center;
flags = TextFormatFlags.HorizontalCenter;
break;
case HorizontalAlignment.Right:
sf.Alignment = StringAlignment.Far;
flags = TextFormatFlags.Right;
break;
}
// Draw the text and background for a subitem with a
// negative value.
double subItemValue;
if (e.ColumnIndex > 0 && Double.TryParse(
e.SubItem.Text, NumberStyles.Currency,
NumberFormatInfo.CurrentInfo, out subItemValue) &&
subItemValue < 0)
{
// Unless the item is selected, draw the standard
// background to make it stand out from the gradient.
if ((e.ItemState & ListViewItemStates.Selected) == 0)
{
e.DrawBackground();
}
// Draw the subitem text in red to highlight it.
e.Graphics.DrawString(e.SubItem.Text,
listView1.Font, Brushes.Red, e.Bounds, sf);
return;
}
// Draw normal text for a subitem with a nonnegative
// or nonnumerical value.
e.DrawText(flags);
}
}
' Draws subitem text and applies content-based formatting.
Private Sub listView1_DrawSubItem(ByVal sender As Object, _
ByVal e As DrawListViewSubItemEventArgs) _
Handles listView1.DrawSubItem
Dim flags As TextFormatFlags = TextFormatFlags.Left
Dim sf As New StringFormat()
Try
' Store the column text alignment, letting it default
' to Left if it has not been set to Center or Right.
Select Case e.Header.TextAlign
Case HorizontalAlignment.Center
sf.Alignment = StringAlignment.Center
flags = TextFormatFlags.HorizontalCenter
Case HorizontalAlignment.Right
sf.Alignment = StringAlignment.Far
flags = TextFormatFlags.Right
End Select
' Draw the text and background for a subitem with a
' negative value.
Dim subItemValue As Double
If e.ColumnIndex > 0 AndAlso _
Double.TryParse(e.SubItem.Text, NumberStyles.Currency, _
NumberFormatInfo.CurrentInfo, subItemValue) AndAlso _
subItemValue < 0 Then
' Unless the item is selected, draw the standard
' background to make it stand out from the gradient.
If (e.ItemState And ListViewItemStates.Selected) = 0 Then
e.DrawBackground()
End If
' Draw the subitem text in red to highlight it.
e.Graphics.DrawString(e.SubItem.Text, _
Me.listView1.Font, Brushes.Red, e.Bounds, sf)
Return
End If
' Draw normal text for a subitem with a nonnegative
' or nonnumerical value.
e.DrawText(flags)
Finally
sf.Dispose()
End Try
End Sub
注釈
この方法は、他 DrawListViewSubItemEventArgs のプロパティがニーズを満たすのに十分な情報を提供しない場合に便利です。 SubItemプロパティを使用すると、描画されている のすべてのメンバーにListViewItem.ListViewSubItemアクセスできます。 たとえば、 メソッドを使用するのではなく、自分で値を ListViewItem.ListViewSubItem.Text 描画するには、このオブジェクトに直接アクセスする DrawText 必要があります。
適用対象
こちらもご覧ください
.NET