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. |
Datagridview konulu bir soru




-
-
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;
}
}
-
quote:
Orijinalden alıntı: TROJcurrentcell 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?
-
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
-
quote:
Orijinalden alıntı: TROJforeach (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 :)
Bu mesaj IP'si ile atılan mesajları ara Bu kullanıcının son IP'si ile atılan mesajları ara Bu mesaj IP'si ile kullanıcı ara Bu kullanıcının son IP'si ile kullanıcı ara
KAPAT X