2016-04-08 39 views
0

Bir DataGridView dgv1 sahibiyim ve her seferinde 1 satır dolduracağım.DataGridView öğesinin son satırını alma ve bir liste veya diziye kaydetme

Her satır oluşturulduğunda, oluşturulan satır bir Liste veya Dizide saklanır.

private void dgvScanLogs_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
    { 
     //List<string> sqlLog = dgvScanLogs.Rows[dgvScanLogs.Rows.Count - 1]; 

     //List<string> LogList = dgvScanLogs.Rows 
     //    .OfType<DataGridViewRow>() 
     //    .Select(r => r.Cells[0].Value.ToString()) 
     //    .ToList(); 

    } 

Bazı kodlarım var ancak doğru gelmiyor gibi görünüyor.
Yaptığım şey, 1. Sütunu Listeleniyor, ancak Son Satır'a ihtiyacım var.

Son/Yeni Satır'ı Array veya List'a nasıl kaydedebilirim?

+0

Sorunuzu yeniden çerçevelemeyi deneyebilir misiniz? Kodunuzdan, tanımladığınız "List" yerel kapsama aittir, bu nedenle yöntem yürütme tamamlandıktan sonra kaybolacaktır. –

cevap

0

Ne istediğinizden emin değilsiniz.

List<string> sqlLog = new List<string>(); 
sqlLog.Add(dgvScanLogs.Rows[dgvScanLogs.Rows.Count - 1].ToString()); 

Sen List yapabilirsiniz önce oluşturmanız gerekir: yerel olarak en kısa sürede RowsAdded işleyicisi olarak döndüğü kapsam dışında gider List tanımlanmış bir son satır eklemek için çalışıyoruz fakat ne olursa olsun gibi görünüyor ekle. Ve DataGridViewRowCollection'daki Item[Int32] yönteminin bir listesi dönmüyor, bu yüzden onu varolan bir listeye eklemeniz gerekiyor.

+0

Evet, "Satırlar" seçeneğinde, son satır işlemek için bir Liste/Dizi içinde saklanır. Sonra başka bir satır eklenirse, liste değeri eklenmez/üzerine yazılmaz. Satırın hücre değerlerine ihtiyacım var. – Hexxed

+0

Hiçbir şey değiştirilmeyecek/üzerine yazılmayacak ya da eklenecektir, çünkü 'List 'yerel bir değişkendir. Her yöntem çağrısında yeni bir boş liste olacak. Her bir Hücrenin listede bir eleman olmasını ister misiniz? –

1

ilk şey öncelikle, herhangi bir değişken idamından sonra, bu programda olduğu kayıp olacak, yöntemin kapsamı ile ilan etti.

Sana her eklenen satırlar ilkCell değerini depolamak istediğiniz, varsayalım.

LogList tanımını sınıf değişkeni olarak tanımlayın. Her yeni satır eklendi için

List<string> LogList = new List<string>(); 

RowsAdded olay böylece neye ihtiyacınız Bu olay listesini güncellemek çağrılan her şey budur, tetiklenir.

void dataGridView1_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e) 
{ 
    DataGridViewRow row = dataGridView1.Rows[e.RowIndex]; 

    LogList.Add(row[0].ToString()); 
} 
+0

Tüm satıra ihtiyacım var. Ama evet işe yarıyor, sanırım sadece bir döngü kullanmak için bu döngüye ihtiyacım var. – Hexxed

+0

Yani, tüm sütunlara ihtiyacınız var? –

+0

Teknik olarak, satır 1'den sütun N'ye kadar tüm satır kaydı. – Hexxed