ListView에서 선택한 항목 주위에 직사각형을 그려야합니다. Microsoft에서 해당 항목의 '강조 표시된 색'을 변경하지 말 것을 권장합니다. 그러나 selectedIndexChanged 이벤트를 사용하고 실제 listviewitem 그릴 때 내 사각형이 사라집니다. 교양있는 추측은 내 직사각형이 그 뒤에 있거나 다시 그려 질 때 지워 졌다고 제안 할 것입니까? 그래서 내 질문은 언제 볼 수있는 사각형을 그리는 것이 가장 좋은 시간일까요? 지금까지 아래에서 볼 수 있습니다 내 코드 :선택한 ListView 항목 주위 사각형 사각형
void lvMain_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvMain.SelectedItems.Count > 0)
{
if (lastSelectedItem == null) // First time called
{
lastSelectedItem = (sender as System.Windows.Forms.ListView).SelectedItems[0];
DrawHighlightRectanlge(lastSelectedItem);
}
else
{
// TODO: Remove previous highlight
lastSelectedItem = (sender as System.Windows.Forms.ListView).SelectedItems[0];
DrawHighlightRectanlge(lastSelectedItem);
}
}
}
internal void DrawHighlightRectanlge(System.Windows.Forms.ListViewItem item)
{
using (Graphics g = item.ListView.CreateGraphics())
{
g.DrawRectangle(new Pen(Color.Red), new Rectangle(item.Position.X, item.Position.Y, item.Bounds.Width, item.Bounds.Height));
}
}
TIA 여기
예, 'DrawItem' 이벤트에서 오버 페인트됩니다. 직사각형 그리기 코드를 추가하고 추가해야하는 곳입니다. 이제 모든 그림을 한 장씩 가져와야합니다. 하지만 대부분의 어려운 일은'e' 매개 변수에서 함수를 호출하여 수행 할 수 있습니다. - 어떤보기 모드를 사용합니까? – TaW
'세부 정보'보기를 사용 중입니다. –