DrawListViewItemEventArgs.DrawFocusRectangle Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Rysuje prostokąt fokusu ListViewItem , jeśli ma fokus.
public:
void DrawFocusRectangle();
public void DrawFocusRectangle();
member this.DrawFocusRectangle : unit -> unit
Public Sub DrawFocusRectangle ()
Przykłady
W poniższym przykładzie kodu pokazano, jak używać DrawFocusRectangle metody w aplikacji, która udostępnia niestandardowy rysunek dla kontrolki ListView . W tym przykładzie program obsługi zdarzenia ListView.DrawItem rysuje tło dla całych elementów. We wszystkich widokach z wyjątkiem widoku szczegółów ta procedura obsługi rysuje również tekst pierwszego planu. W widoku szczegółów tekst pierwszego planu jest rysowany w ListView.DrawSubItem zdarzeniu.
Aby zapoznać się z kompletnym przykładem, zobacz DrawListViewItemEventArgs temat przeglądu.
// 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
Uwagi
Użyj tej metody, aby narysować standardowy prostokąt fokusu wokół elementu. Prostokąt fokusu jest zwykle rysowany w obszarze określonym przez Bounds właściwość . Jeśli kontrolka znajduje się w widoku szczegółów, a ListView.FullRowSelect wartość właściwości to false, jednak prostokąt fokusu jest rysowany wokół domyślnego obszaru tekstowego dla pierwszej kolumny elementu.
Prostokąt fokusu jest rysowany tylko wtedy, gdy element ma fokus, więc nie trzeba sprawdzać stanu fokusu elementu przed wywołaniem tej metody.