• 11-01-2015, 20:46:59
    #1
    Arkadaşlar selamlar. C#'ta Datagridview ile ilgili bir sorum olacaktı sizlere.

    Butona bastığımda belirli koşulu sağlayan sayılar başka bir datagridview'dan resimde görülene aktarılıyor. Ancak ben bu aktarmanın sadece ilk sütuna değil, sırayla olmasını istiyorum ancak bir türlü yapamıyorum.

    Tam olarak şu şekilde yapmaya çalışıyorum;


    Yardımcı olabilecek arkadaşlara şimdiden çok teşekkür ederim.

    Kod şu şekilde;
    private void button2_Click(object sender, EventArgs e)
         {
             int sayi = 0;
             for (int i = 0; i < 5; i++)
             {
                 for (int a = 0; a < 5; a++)
                  {
    sayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[a].Value);
                        if (sayi % 2 == 1)
                         dataGridView2.Rows.Add(sayi.ToString());  
                    }
                }
            }
  • 11-01-2015, 21:21:32
    #2
    İhtiyacımız olan sayıları önce bir listeye alıp sonra 2. gridview'e sırayla yazdırdım;

    List<int> sayilar = new List<int>();
                int sayi = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    sayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
                    if (sayi % 2 == 1)
                        sayilar.Add(sayi);
                }
                int hangisatir = 0, hangisutun = 0;
                for (int i = 0; i < sayilar.Count; i++)
                {
                    dataGridView2.Rows[hangisatir].Cells[hangisutun].Value = sayilar[i].ToString();
                    if (i == 4)
                    {
                        hangisatir++;
                        hangisutun = 0;
                    }
                    else
                    {
                        hangisutun++;
                    }
                }
  • 11-01-2015, 22:22:36
    #3
    Clable adlı üyeden alıntı: mesajı görüntüle
    İhtiyacımız olan sayıları önce bir listeye alıp sonra 2. gridview'e sırayla yazdırdım;

    List<int> sayilar = new List<int>();
                int sayi = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    sayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
                    if (sayi % 2 == 1)
                        sayilar.Add(sayi);
                }
                int hangisatir = 0, hangisutun = 0;
                for (int i = 0; i < sayilar.Count; i++)
                {
                    dataGridView2.Rows[hangisatir].Cells[hangisutun].Value = sayilar[i].ToString();
                    if (i == 4)
                    {
                        hangisatir++;
                        hangisutun = 0;
                    }
                    else
                    {
                        hangisutun++;
                    }
                }
    Hocam öncelikle yanıtınız için çok teşekkür ederim. Emeğinize sağlık.
    Burada Cells[0]'da da görüldüğü gibi yalnızca ilk hücrenin elemanları alınıyor. Ben 5 hücrenin elemanını da almak istiyorum. Benim bunu konuda belirtmem gerekirdi, kusura bakmayın lütfen. for ile birtakım denemeler yaptım ancak başarıya ulaşamadım.
  • 11-01-2015, 23:16:55
    #4
    veNema34 adlı üyeden alıntı: mesajı görüntüle
    Hocam öncelikle yanıtınız için çok teşekkür ederim. Emeğinize sağlık.
    Burada Cells[0]'da da görüldüğü gibi yalnızca ilk hücrenin elemanları alınıyor. Ben 5 hücrenin elemanını da almak istiyorum. Benim bunu konuda belirtmem gerekirdi, kusura bakmayın lütfen. for ile birtakım denemeler yaptım ancak başarıya ulaşamadım.
    İlk for döngüsünden sonra bir tane de hücre sayısı kadar dönersek şu şekilde oluyor;

    List<int> sayilar = new List<int>();
                int sayi = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    for (int j = 0; j < dataGridView1.Rows[0].Cells.Count; j++)
                    {
                        sayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
                        if (sayi % 2 == 1)
                        sayilar.Add(sayi);
                        
                    }
                }
    
                int hangisatir = 0, hangisutun = 0;
                for (int i = 0; i < sayilar.Count; i++)
                {
                    dataGridView2.Rows[hangisatir].Cells[hangisutun].Value = sayilar[i].ToString();
                    if (i == 5)
                    {
                        hangisatir++;
                        hangisutun = 0;
                    }
                    else
                    {
                        hangisutun++;
                    }
                }
  • 12-01-2015, 00:06:39
    #5
    Clable adlı üyeden alıntı: mesajı görüntüle
    İhtiyacımız olan sayıları önce bir listeye alıp sonra 2. gridview'e sırayla yazdırdım;

    List<int> sayilar = new List<int>();
                int sayi = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    sayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
                    if (sayi % 2 == 1)
                        sayilar.Add(sayi);
                }
                int hangisatir = 0, hangisutun = 0;
                for (int i = 0; i < sayilar.Count; i++)
                {
                    dataGridView2.Rows[hangisatir].Cells[hangisutun].Value = sayilar[i].ToString();
                    if (i == 4)
                    {
                        hangisatir++;
                        hangisutun = 0;
                    }
                    else
                    {
                        hangisutun++;
                    }
                }
    Clable adlı üyeden alıntı: mesajı görüntüle
    İlk for döngüsünden sonra bir tane de hücre sayısı kadar dönersek şu şekilde oluyor;

    List<int> sayilar = new List<int>();
                int sayi = 0;
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    for (int j = 0; j < dataGridView1.Rows[0].Cells.Count; j++)
                    {
                        sayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value);
                        if (sayi % 2 == 1)
                        sayilar.Add(sayi);
                        
                    }
                }
    
                int hangisatir = 0, hangisutun = 0;
                for (int i = 0; i < sayilar.Count; i++)
                {
                    dataGridView2.Rows[hangisatir].Cells[hangisutun].Value = sayilar[i].ToString();
                    if (i == 5)
                    {
                        hangisatir++;
                        hangisutun = 0;
                    }
                    else
                    {
                        hangisutun++;
                    }
                }

    Bu şekilde hata alıyorum hocam. Aslında görünürde her şey tamam gibi ama neden böyle oldu anlayamadım. Projenin diğer kısımlarıyla uyumsuzluk yaşanıyor olabilir, o sebeple projeyi de ekliyorum.
    https://www.dropbox.com/s/ntm7cekc6n...ion17.rar?dl=0
    Bakma imkanınız olmazsa da yardımlarınız için teşekkürler hocam, ben bu kadarını bile yapamamıştım.