Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
915
Tıklama
0
Öne Çıkarma
Datagridview konulu bir soru
B
5 yıl (2153 mesaj)
Yarbay
Konu Sahibi

Merhaba arkadaşlar.

Yazılımcı hiç değilim, ufak bir sorum olacak.
İş yerim için kendimce bir program oluşturuyorum.

Takıldığım ufak bir nokta var

Sağlı sollu 2 farklı datagridview kullanmaktayım.


İhtiyacım olan aşağıaki gibi..

ne zaman soldaki datagridview'da bir sütuna tıklasam [1] deki "isim" değeri, sağ taraftaki datagridview daki [0] değeri nerede çakışıyorsa (ki çakışacak) o satır seçili hale gelsin.



1) dg_Envanter.CurrentRow.Cells[1].Value
2) dg_Pivot.CurrentRow.Cells[0].Value

Kısaca 1 e tıklayınca, 2 nin ilgili satırı seçili hale gelsin.


dg_Envanter deki satır bilgilerini halihazırda update etmek için cellenter event'ini kullanmaktayım.
Aynı event üzerinden devam edilebilir diye düşünüyordum ama devamını getiremedim.

Yardımcı olabilirseniz çok memnun olurum.



T
5 yıl (2128 mesaj)
Binbaşı

currentcell ve scrollindex ile yapabilirsin.

soldaki grid cellenter a sağdaki grid in tüm row larını gezdirip aynı olan değerde seçimi yaptırman lazım.

        foreach (datagridviewrow in sagdakigrid.rows)
        {
          if (r.cells["xx"].Value.tostring() == soldakisecilivalue.tostring())
          {
            sagdakigrid.currentcell= r.cells["xx"];
            sagdakigrid.firstdisplayedscrollingrowIndex = r.Index;
break;
          }
        }


Bu mesaja 1 cevap geldi.
B
5 yıl (2153 mesaj)
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: TROJ

currentcell ve scrollindex ile yapabilirsin.

soldaki grid cellenter a sağdaki grid in tüm row larını gezdirip aynı olan değerde seçimi yaptırman lazım.

        foreach (datagridviewrow in sagdakigrid.rows)
        {
          if (r.cells["xx"].Value.tostring() == soldakisecilivalue.tostring())
          {
            sagdakigrid.currentcell= r.cells["xx"];
            sagdakigrid.firstdisplayedscrollingrowIndex = r.Index;
break;
          }
        }
Cevap için teşekkür ederim.

Aldığım cevap doğrultusunda kodu benim objelere göre aşağıdaki gibi doldurdum.


foreach (DataGridViewRow in dg_Pivot.Rows)
           {
               if (r.Cells[0].Value.ToString == dg_Envanter.CurrentRow.Cells[1].Value.ToString)
               {
                   dg_Pivot.CurrentCell = r.cells[0];
                   dg_Pivot.FirstDisplayedScrollingRowIndex = r.Index;
                   break;
               }
           }


Aldığım hatalar..


1) Foreach içerisinde in takısı altı çizili geldi (Type and identifier are both required in a foreach statement)  

2) r için : (The name 'r' does not exist in the current context)


Birşeyi hatalı mı yaptım ben?


Bu mesaja 1 cevap geldi.
T
5 yıl (2128 mesaj)
Binbaşı

foreach (DataGridViewRow r in dg_Pivot.Rows)
           {
               if (r.Cells[0].Value.ToString() == dg_Envanter.CurrentRow.Cells[1].Value.ToString())
               {
                   dg_Pivot.CurrentCell = r.cells[0];
                   dg_Pivot.FirstDisplayedScrollingRowIndex = r.Index;
                   break;
               }
           }

ayrıca döngüyü

dg_Envanter.CurrentRow.Cells[1].Value != null kontrolü içinde yaptırırsanız ilk yüklemede cellenter hata verme ihtimali kalkmış olur


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @badtrip
B
5 yıl (2153 mesaj)
Yarbay
Konu Sahibi

quote:

Orijinalden alıntı: TROJ

foreach (DataGridViewRow r in dg_Pivot.Rows)
           {
               if (r.Cells[0].Value.ToString() == dg_Envanter.CurrentRow.Cells[1].Value.ToString())
               {
                   dg_Pivot.CurrentCell = r.cells[0];
                   dg_Pivot.FirstDisplayedScrollingRowIndex = r.Index;
                   break;
               }
           }

ayrıca döngüyü

dg_Envanter.CurrentRow.Cells[1].Value != null kontrolü içinde yaptırırsanız ilk yüklemede cellenter hata verme ihtimali kalkmış olur
Teşekkür ederim @TROJ.

Birebir istediğim gibi oldu.

şu programlaya iyice başlamak gerek :)



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.