• 09-09-2021, 15:51:23
    #1
    Üyeliği durduruldu
    Merhaba Arkadaşlar...

    For döngüsü kurdum. her arttırmada işlem yapsın istiyorum. ama öyle olması yerine i örneğin alabileceği en büyük değer 3 ise i 3 oluyor ve işlem öyle yapılıyor. Oysaki ben i her arttıgında işlem yapılsın istiyorum.

    for (int i = 1; i < dgwList.RowCount; i++)
                {
                   
                        Image img = Image.FromFile(dgwList.Rows[i].Cells[2].Value.ToString());
                        this.picList.Image = new Bitmap(img, new Size(150, 150));
                        lblMenuName.Text = dgwList.Rows[i].Cells[1].Value.ToString();
    
                }
  • 09-09-2021, 16:03:54
    #2
    dgwList de 3 eleman varsa i en fazla 3 olur ?
  • 09-09-2021, 16:12:27
    #3
    Üyeliği durduruldu
    Hocam tamam 3 olur ama ben i 1 oldugunda, 2 oldugunda da işlem yapmasını istiyorum.
  • 09-09-2021, 16:16:32
    #4
    Merhabalar Hocam,

    For'un kullanım alanı zaten dediğiniz gibi döngü sayısı kadar işlem yaptırmasıdır. Rows[i] toplamda 3 satır varsa 3 kere dönüp her döndüğünde for içindeki işlemleri yaptıracaktır? Siz ne yaptırmak istiyorsunuz şu an konuya bakan arkadaşlar onu anlayamıyor sanırım ?
  • 09-09-2021, 16:18:28
    #5
    Üyeliği durduruldu
    Hocam ben şunu yaptırmak istiyorum; i her arttıgında datagridview den belli bir sütun için satırların çekilmesini.
  • 10-09-2021, 11:21:26
    #6
    Siz anladığım kadarıyla datagridviewde count sayısı değiştikce bu döngüyü tekrar tekrar çalıştırmak istiyorsunuz.

    Eğer sorunuz bu ise, datagridview'in rowadd ve rowdelete eventlerine (uzun zamandır kullanmadığım için isimlerini tam hatırlamıyorum ama böyle birşey) bu döngünün fonksiyonunu yazarsanız, her event çalıştığında döngünüzde çalışır.
  • 11-09-2021, 02:20:08
    #7
    tamam anladim ben ne demek istediginizi. Aslinda for döngüsü dediginiz isi yapiyor, sizin yazdiginiz kod yanlis. i, 1,2 ve 3 deyken de calisiyor ama siz ayni label'a degerleri üstüne yazdirdiginiz icin, en sondaki (3. olani) yazdiriyor


    lblMenuName.Text = "";
    for (int i = 1; i < dgwList.RowCount; i++)
    {
      Image img = Image.FromFile(dgwList.Rows[i].Cells[2].Value.ToString());
      this.picList.Image = new Bitmap(img, new Size(150, 150));
      lblMenuName.Text += dgwList.Rows[i].Cells[1].Value.ToString() + " - ";
     }
    kodunuzu su sekil degistirirseniz lblMenuName de sütunlardaki 3 degeri de göreceksiniz "deger 1 - deger 2 - deger 3 - " seklinde
    tabi ayni problemi picList de de yasayacaksiniz cünkü o da ayni sekilde üzerine yaziyor ve en son deger gecerli oluyor. Farkli bir mantik düsünmeniz lazim. Cünkü for döngüsünde, sartlar kadar döngü calisir o halde, sartlar kadar label, image itemlariniz olmali

    kolay gelsin
  • 13-09-2021, 10:08:47
    #8
    Üyeliği durduruldu
    Arkadaşlar, uzun uğraşlar sonucu kendim mantık yürüterek sonuca ulaştım. Aşağıda kodları paylaşıyorum; belki ihtiyacı olan olur.

    Random LocationPicker = new Random();
    
                for (int i = 0; i < dgwList.RowCount; i++)
                {
                   
                    PictureBox imagem = new PictureBox();
    
                    int X = LocationPicker.Next(0, 750);
                    int Y = LocationPicker.Next(300, 500);
    
                    imagem.Size = new Size(150, 150);
    
                    imagem.Location = new Point(X, Y);
    
                    Image img = Image.FromFile(dgwList.Rows[i].Cells[2].Value.ToString());
                    imagem.Image = new Bitmap(img, new Size(150, 150));
    
                    lblMenuName.Text = lblMenuName.Text + dgwList.Rows[i].Cells[1].Value.ToString();
    
    
                    this.Controls.Add(imagem);
    
                }