Bir onay kutusu sütununa sahip bir DataGridView var. Tüm seç/çıkar seçimini oluşturmaya çalışıyorum. Değerleri değiştirmek için kod yeterince kolay, ancak performans korkunç.DataGridView onay kutusu sütunu "tümünü seç" performansı
for (int i = 0; i < dgv.RowCount; i++)
{
dgv.Rows[i].Cells["Selected"].Value = _selectAll;
}
_selectAll basitçe bir toggle bool değişkendir. Performansın hızlı olduğu yerde bunu yapmanın daha iyi bir yolu var mı? Altta yatan DataTable'daki değeri de değiştirmeyi denedim. Sadece birkaç yüz satır için hala birkaç saniye sürüyor, ancak çoğu iş binlerce satırda yapılacak.
DÜZENLEME & ÇÖZÜM (2011/10/4)
temel sorun DGV özelliklerinde oldu. I belirledikten sonra,
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
performans (MSDN DataGridView Performance başına) önemli ölçüde arttı. Bu düzenleme ile önerilen çözümler, performansı biraz da artıracaktır.
Sütuna ada yerine dizinle erişmeyi deneyin. Örneğin. dgv.Rows [i] .Cells [1] .Value = _selectAll; ' –
Herhangi bir özelliğe sınırlanmış veya yalnızca arkasından gelen kodla ilgili grid var mı? –
Şişe boynunun nerede olduğundan emin misiniz? Başka yerde olduğunu düşünüyor. –