DrawListViewItemEventArgs.DrawFocusRectangle Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Рисует прямоугольник фокуса для элемента ListViewItem, если он имеет фокус.
public:
void DrawFocusRectangle();
public void DrawFocusRectangle ();
member this.DrawFocusRectangle : unit -> unit
Public Sub DrawFocusRectangle ()
Примеры
В следующем примере кода показано, как использовать DrawFocusRectangle метод в приложении, которое предоставляет пользовательское рисование ListView для элемента управления . В этом примере обработчик события ListView.DrawItem рисует фон для целых элементов. Во всех представлениях, кроме представления сведений, этот обработчик также рисует текст переднего плана. В представлении сведений текст переднего плана рисуется в событии ListView.DrawSubItem .
Полный пример см. в обзорной справочной 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
Комментарии
Используйте этот метод для рисования стандартного прямоугольника фокуса вокруг элемента. Прямоугольник фокуса обычно рисуется в пределах области, указанной свойством Bounds . Если элемент управления находится в представлении сведений и ListView.FullRowSelect значение свойства равно false
, прямоугольник фокуса рисуется вокруг текстовой области по умолчанию для первого столбца элемента.
Прямоугольник фокуса рисуется только в том случае, если элемент имеет фокус, поэтому вам не нужно проверка состояние фокуса элемента перед вызовом этого метода.