2008-11-12 19 views
28

DataGridView denetimini sütunlarla bir liste olarak kullanmak isterim. Ayrıntılar modunda ListView gibi sıralama ama DataGridView esnekliğini korumak istiyorum.
selected row in ListView controlDataGridView: Tek bir hücre yerine tüm satıra nasıl odaklanılır?

DataGridView (SelectionMode = ile:

ListView bütün çizgi vurgular ve bütün çizgi etrafında odak işareti gösterir ( görünümü ve FullRowSelect etkin Detaylar ile) FullRowSelect), odak işaretini yalnızca tek bir hücre çevresinde gösterir:
selected row in DataGridView

Yani, DataGridView satır seçiminin ListView 1 gibi görünmesini sağlamak için bazı (ideal) kolay yolu bilen var mı?
Denetimin değiştirilmiş davranışını arıyorum - Sadece aynı görünmesini istiyorum.
İdeal olarak, gerçek tabloyu yapan yöntemlerle uğraşmadan.

cevap

40

Bu kodu ya formunuzun yapıcısına koyun ya da IDE'yi kullanarak datagridview'in Özellikler'a ayarlayın.

private void dgv_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) 
{ 
    e.PaintParts &= ~DataGridViewPaintParts.Focus; 
} 

Ve çalışır:

dgv.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
dgv.MultiSelect = false; 
dgv.RowPrePaint +=new DataGridViewRowPrePaintEventHandler(dgv_RowPrePaint); 

Ardından formu koduna aşağıdaki olay yapıştırın! :-)

"DGV" söz konusu DataGridView ve "form" olduğunu, onu içeren Formu olduğunu.

Not: Bu ruh hali, tüm satırın etrafında noktalı dikdörtgeni görüntülemiyor. Bunun yerine, odak noktalarını tamamen kaldırır.

16

Nasıl Bana uyar

ReadOnly == true 

SelectionMode == FullRowSelect 

hakkında ve

.

+0

10 nice sir Yardımlarınız için teşekkürler –

İlgili konular