Forum
Merhaba Arkadaşlar
DataGridWiev de eğer hücrede ki yazı içerisinde "cozumpark" kelimesi geçiyorsa kırmızı olsun istiyorum
Mesala
"cozumpark Çözümsüz Sorununuz Kalmasın. Türkiyenin En büyük Bilişim Topluluğu " kelimesindeki "cozumpark" kırmızı olsun geri kalanı değişmesin
DataGridWiev e access den tablomu çekiyorum
Mrb
Aşağıdaki örnekler işini görür.
1. dataGridView1.Rows[rowNo].Cells[KolonNo].Style.BackColor = Color.Red;
2. dataGridView1[KolonNo, RowNo].Style.BackColor = Color.Red;
3.
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if ((string)row.Cells[KolonNo].Value == "cozumpark.com")
row.Cells[KolonNo].Style.BackColor = Color.Blue;
}
Hocam Çok Teşekkür ederim kesinlikle bu kodlar işime yaradı ve ayrıca öğrenmiş oldum ama genede kafama takılan sorunun tam cevabını alamadım
Sizin kodlarınız eğer hücrede sadece "cozumpark" yazıyorsa çalışıyor ama oysaki ben "cozumpark! Yanıtsız sorunuz kalmasın" gibi bir şey yazarsada renk değişimi olsun istiyorum
Tekrar Teşekkürler
Mrb
rica ederim, o zaman şöyle yaparsın sen hangi kelime,cümleleri istiyosan db ye girersin. Sonra bi method yaparsın db 'de like'la sorgularsın içinde geçen kelime vs.. varsa dönen değere göre rengini değiştirirsin..
satırların içinde dönerken Contains() metodunu da kullanarak yapabilirsin.
Contains() metodu bool bir deger dondurur. True ise istedigin kısımları kırmızı yapabilirsin.
for (int i = 0; i < dataGridView1.RowCount - 1; i++){if ((dataGridView1[4, i].Value.ToString() == "ali")) ;{dataGridView1[4, i].Style.BackColor = Color.Red;}}arkadaşlar Kod blogundanda sanırım anlaşılacagı gibi 4. stunumun içerisinde dönderiyor ve her satırda "ali" kelimesini arıyorum eger yazıyorsa o sütünu kırmızı yapsın istiyorum ama hücrede ne yazarsa yazsın if blogunun içerisine giriyor ve hücrenin rengini değiştiriyorNeden?
breakpoint koyup adımları izlermisiniz. "dataGridView1[4, i].Value.ToString()" bu değerin ne verdigini yazarsanız daha yardımcı olabilirim.
😀
İf blogumun sonuna ";" virgül koyunca böle bir sonuça ulaşıyormulum öğrenmiş oldum(El alışkanlığı yararlı değil demekki,Heryere ";" olmaz 😀 )
Genede;
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if ((dataGridView1[4, i].Value.ToString().== "ali"))
{
dataGridView1[4, i].Style.BackColor = Color.Red;
}
}
Dediğimde sadece 1. "ali" bulunan hücreyi değiştiriyor öbürlerini değiştirmiyor
Bunu neden böyle yapıyor anlamadım?
ancak;
Webeffect arkadaşımızın dediği gibi
Contains() methodunu kullanınca herşey çözüldü
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if ((dataGridView1[4, i].Value.ToString().Contains("ali")))
{
dataGridView1[4, i].Style.BackColor = Color.Red;
}
}
Tüşekkürler
Çözmüş olmana sevindim. Kolay gelsin
🙂
Teşekkürler WepEffect
Genede öğrenmek istiyorum
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if ((dataGridView1[4, i].Value.ToString().== "ali"))
{
dataGridView1[4, i].Style.BackColor = Color.Red;
}
}
Dediğimde sadece 1. "ali" bulunan hücreyi değiştiriyor öbürlerini değiştirmiyor
Bunun sebebi nedir?
BreakPoint koyduğumda mesala 4.stun 3. hücrenin value değerini "ali" olarak gösteriyor ve mantıksal olara bloğun içerisine girmesi lazım ama girmiyor
şöyle birşey var.
Datadan gelen "ali" ile senin karşılaştırdığın bire bir aynı mı. Mesela belki datadaki alinin kenarlarında boşluk var yada büyük harfli. Böyle bir ihtimal var mı? Veriler aynı mı birebir.
Hocam sağolun ya gerçekten
Herşeyi denemiştim de ".trim()" ile denemek hiç aklıma gelmemişti
Genede belki birine lazım olur yazalım
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
if ((dataGridView1[4, i].Value.ToString().Trim() == "ali"))
{
dataGridView1[4, i].Style.BackColor = Color.Red;
}
}
Bi "trim" nelere kadir 😀
Oldu yani 🙂
Sevindim.. Yazılımda çok küçük ayrıntılar çok büyük sonuçlar doğurabiliyor bazen :))