DrawListViewItemEventArgs.DrawFocusRectangle Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Dibuja un rectángulo de foco para el control ListViewItem si tiene el foco.
public:
void DrawFocusRectangle();
public void DrawFocusRectangle ();
member this.DrawFocusRectangle : unit -> unit
Public Sub DrawFocusRectangle ()
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar el DrawFocusRectangle método en una aplicación que proporciona un dibujo personalizado para un ListView control. En el ejemplo, un controlador para el ListView.DrawItem evento dibuja el fondo de todos los elementos. En todas las vistas excepto la vista de detalles, este controlador también dibuja el texto en primer plano. En la vista de detalles, el texto en primer plano se dibuja en el ListView.DrawSubItem evento .
Para obtener el ejemplo completo, consulte el DrawListViewItemEventArgs tema de referencia de información general.
// 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
Comentarios
Utilice este método para dibujar un rectángulo de foco estándar alrededor del elemento. Normalmente, el rectángulo de foco se dibuja dentro del área especificada por la Bounds propiedad . Si el control está en la vista de detalles y el valor de la ListView.FullRowSelect propiedad es false
, sin embargo, el rectángulo de foco se dibuja alrededor del área de texto predeterminada para la primera columna del elemento.
El rectángulo de foco se dibuja solo cuando el elemento tiene el foco, por lo que no es necesario comprobar el estado de foco del elemento antes de llamar a este método.