DrawListViewItemEventArgs.DrawFocusRectangle Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.