2016-04-04 8 views
1

Başarılı bir Drag & Bırakma eylemi sonrasında DataGridView'ın bir satırını devre dışı bırakmanın en iyi yolunu arıyorum. Bu yüzden, daha önce satırı bıraktım ve arka plan rengini kullanarak taşınmış olarak işaretledim.C# ve Winforms'ta belirli bir DataGridView satırından sürükle nasıl devre dışı bırakılır?

Now Daha fazla Drop'i aynı anda sürüklemem gerekiyor. Bu satır kaldırmadan mümkün mü?

Ben düştü DataGridView satır seçimini yapabilirsiniz ama ben "sürüklenebilir" değil işaretlemek edemez: yerleştirilmesini kaçınarak sıranın bir özelliğini ayarlamak için herhangi bir olası yolu

dgvToolPosition.Rows[dgvToolPosition.SelectedRows[0].Index].Selected = false; 

var mı zaten bırakılan satırların bir List<DataGridViewRowCollection> üzerinde ilgili dizin?

+0

DoDragDrop yöntemini arama? – LarsTech

+0

Bir satırın sürüklenemeyen bir şekilde işaretlenmesinin bir yolu olup olmadığını merak ediyorum, aksi halde birden fazla düşüşü önlemek için düşürülmüş olan satır dizinini bir Listeye kaydetmem gerekiyor. – sentenza

cevap

1

önceden satır düştü bir sürüklyn olayı önlemek için en iyi yol satırın benzersiz özellik için kontrol etmektir: O olay için hızlı bir Google arama yaptı, bu şimdiye ile geldi budur bir başarılı bırakma işlemi (DefaultCellStyle.BackColor) ayarlanmış olduğunu:

// Check if a row in the current selection has a gray background color, 
// so it can be skipped on Drag&Drop. 
       foreach(DataGridViewRow selectedRow in dgvToolPosition.SelectedRows) 
       { 
        if(selectedRow.DefaultCellStyle.BackColor == FCSCoreGlobal.ColorGray) 
         return; 
} 

ben bunu yapmanın en iyi yolu olmadığını biliyorum ama şimdiye kadar bulduğum en iyi numara. Hala false olarak ayarlamak için bir DataGridViewRow üzerinde bir AllowDrag özelliği arıyorum.

İlgili konular