DrawListViewItemEventArgs.DrawFocusRectangle Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Ritar en fokusrektangel för om den ListViewItem har fokus.
public:
void DrawFocusRectangle();
public void DrawFocusRectangle();
member this.DrawFocusRectangle : unit -> unit
Public Sub DrawFocusRectangle ()
Exempel
Följande kodexempel visar hur du använder DrawFocusRectangle metoden i ett program som tillhandahåller anpassad ritning för en ListView kontroll. I exemplet ritar en hanterare för ListView.DrawItem händelsen bakgrunden för hela objekt. I alla vyer utom informationsvyn ritar den här hanteraren även förgrundstexten. I informationsvyn ritas förgrundstexten ListView.DrawSubItem i händelsen.
Det fullständiga exemplet finns i översiktsreferensavsnittet 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
Kommentarer
Använd den här metoden för att rita en standardfokusrektangel runt objektet. Fokusrektangeln ritas normalt inom det område som anges av Bounds egenskapen. Om kontrollen finns i informationsvyn och egenskapsvärdet ListView.FullRowSelect är false, ritas dock fokusrektangeln runt standardtextområdet för den första kolumnen i objektet.
Fokusrektangeln ritas bara när objektet har fokus, så du behöver inte kontrollera objektets fokustillstånd innan du anropar den här metoden.