2009-08-31 24 views
6

'daki belirli satırların nasıl vurgulanacağını gösterir. DataGridView var. Bu, DataSource değerini bir DataBinding olarak ayarlayarak doldurulur.C#/NET, DataGridView

Şimdi, satırdaki bir değere göre farklı Artalan rengine sahip DataGridView'de belirli satırlar olmasını istiyorum.

Bunu nasıl başarabilirim?

+0

rengini veya stilini değiştirmek için RowPrePaint kullanabilirsiniz. Bu örnekte, performansın gerçekten çok düşük sonuçları olduğundan,http://stackoverflow.com/questions/1078782/c-iterate-over-datagridview-change-row-color – rahul

cevap

7

kavram size ızgaradan etkinliklere abone olmasıdır harika bir örnek here.

var. Bir hücre doldurulduğunda, bir olay tetiklenir ve hücreyi biçimlendirebileceğiniz değere dayanır.

1

Datagridview'ınızın CellFormatting olay işleyicisinde istediğiniz herhangi bir satır için varsayılan arka rengi ayarlayabilirsiniz.

private void MyDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) 
    { 

     if (e.RowIndex == rowIndexToHighlight) 
     { 
      e.CellStyle.BackColor = Color.Green; 
     } 

    } 
+1

-1. Veri bağlama kullanıyorsanız, veri şebekesinin çift satır kayıtları tutması gerekir. Psasik'in örneği, satırları paylaşmamaktan kaçınır. – Kleinux

+0

@Kleinux: Bu, yinelenen satır kayıtlarının tutulmasıyla ilgili ilginç bir yorumdur. Bunun neden böyle olduğunu açıklayabilir misiniz? Teşekkürler – Andy

+1

Dokümanlara bakarsanız, paylaşılmamış ve paylaşılmamış satırlardan bahsedersiniz. Yukarıdaki kod, veri kaynağınızdaki her satır için gerçek DataGridViewRow kayıtlarını yapmak için ızgara görünümünü zorlar. Bu satırlar hücre değerleri anlamında çift değildir, bunun için veri kaynağını hala okuyabilir, ancak artık gerekli olan stil bilgisi nedeniyle var olmaları gerekmez. Umarım yorumumu biraz daha netleştirdim. Bu iyi bir öğretici http://msdn.microsoft.com/en-us/library/ha5xt0d9.aspx – Kleinux

1

Sen Sana bu soruya bazı yararlı bilgiler bulabilir, tüm sıranın