DrawListViewItemEventArgs.DrawFocusRectangle Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Zeichnet ein Fokusrechteck für das ListViewItem, wenn es den Fokus besitzt.
public:
void DrawFocusRectangle();
public void DrawFocusRectangle ();
member this.DrawFocusRectangle : unit -> unit
Public Sub DrawFocusRectangle ()
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie die DrawFocusRectangle -Methode in einer Anwendung verwenden, die benutzerdefinierte Zeichnung für ein ListView Steuerelement bereitstellt. Im Beispiel zeichnet ein Handler für das ListView.DrawItem Ereignis den Hintergrund für ganze Elemente. In allen Ansichten mit Ausnahme der Detailansicht zeichnet dieser Handler auch den Vordergrundtext. In der Detailansicht wird der Vordergrundtext im ListView.DrawSubItem Ereignis gezeichnet.
Das vollständige Beispiel finden Sie im Übersichtsreferenzthema DrawListViewItemEventArgs .
// 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 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
Hinweise
Verwenden Sie diese Methode, um ein Standardfokusrechteck um das Element zu zeichnen. Das Fokusrechteck wird normalerweise innerhalb des durch die -Eigenschaft angegebenen Bereichs Bounds gezeichnet. Wenn sich das Steuerelement jedoch in der Detailansicht befindet und der ListView.FullRowSelect Eigenschaftswert ist false
, wird das Fokusrechteck um den Standardtextbereich für die erste Spalte des Elements gezeichnet.
Das Fokusrechteck wird nur gezeichnet, wenn das Element den Fokus hat, sodass Sie den Fokuszustand des Elements nicht überprüfen müssen, bevor Sie diese Methode aufrufen.