Soran
Listview'de x.stununda bulunan veriyi if then else döngüsünde başka bir stuna yazdırmak

Soru
-
Herkese merhaba,
Listview'in 3.stünlarına gelen veriye göre 4.stuna açıklama yazmak istiyorum. Fakat aşağıdaki kısma ne yazacağımı bir türlü bulamadım.
Yani;
3.stünda "A" yazıyorsa 4.stünda "AA"
3.stünda "B" yazıyorsa 4.stünda "BB"
Şimdiden teşekkür ederim
for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].SubItems[3].Text == "A") { // buraya nasıl bir şey yazmam gerekiyor } }
- Düzenleyen Ergin Yurttaş 4 Temmuz 2019 Perşembe 14:57
Tüm Yanıtlar
-
3 değişik yazim sekli:
// 1 for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].SubItems[3].Text == "A") { listView1.Items[i].SubItems[4].Text = "AA"; } else if (listView1.Items[i].SubItems[3].Text == "B") { listView1.Items[i].SubItems[4].Text = "BB"; } } // 2 for (int i = 0; i < listView1.Items.Count; i++) { listView1.Items[i].SubItems[4].Text = listView1.Items[i].SubItems[3].Text == "A" ? "AA" : listView1.Items[i].SubItems[3].Text == "B" ? "BB" : listView1.Items[i].SubItems[4].Text; } // 3 foreach (ListViewItem item in listView1.Items) { item.SubItems[4].Text = item.SubItems[3].Text == "A" ? "AA" : item.SubItems[3].Text == "B" ? "BB" : item.SubItems[4].Text; }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Çetin abi maalesef ilişkilendiremedim, hata da vermiyor fakat bir şey de yazdıramıyor.
Boş bir alana label'da da denedim ama ona da yazdırmadı.
Hatam sizce nerede olabilir?
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using System.Data.OleDb; using System.Diagnostics; namespace prologic { public partial class form19_Material_List : Form { public form19_Material_List() { InitializeComponent(); } SqlConnection baglanti = new SqlConnection("Data Source=LAPTOP-QLL9638S\\SQLEXPRESS;Initial Catalog=prologic;Integrated Security=True"); private void verilerigoster() { listView1.Items.Clear(); baglanti.Open(); SqlCommand komut = new SqlCommand("select *from Table8 where Hvac_Field_Material != 'absent' order by Hvac_DDC_Name, Hvac_Field_Material", baglanti); SqlDataReader read = komut.ExecuteReader(); for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].SubItems[3].Text == "QBM81-5") { listView1.Items[i].SubItems[4].Text = "AA"; } else if (listView1.Items[i].SubItems[3].Text == "QPM2100") { listView1.Items[i].SubItems[4].Text = "BB"; } } while (read.Read()) { ListViewItem ekle = new ListViewItem(); ekle.SubItems.Add(read["Hvac_DDC_Name"].ToString()); ekle.SubItems.Add(read["Hvac_Field_Material"].ToString()); listView1.Items.Add(ekle); } baglanti.Close(); } private void button2_Click(object sender, EventArgs e) { form16_Hvac_Point_Import hvacpointimport = new form16_Hvac_Point_Import(); hvacpointimport.Show(); this.Hide(); } private void button3_Click(object sender, EventArgs e) { verilerigoster(); } } }
-
Ergin icerik pek doğrular gorunmuyor:
if (listView1.Items[i].SubItems[3].Text == "QBM81-5") // yerine if (listView1.Items[i].SubItems[3].Text.Trim() == "QBM81-5")
dener misin.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
-
Dikkat etmemiştim daha once, sen kontrolu ListView boş iken yapiyorsun:
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Abi tekrar merhaba,
3.stundaki değeri okuyup denemek için x bir label'a yazdırabiliyorum fakat 3.stunu okuyup 4.stuna yazdıramıyorum.
invalid argument hatası veriyor.3'ün değeri index için geçerli değil diyor.
Hatta;
SubItems'ları aynı verince okumasını istediğim stüna da yazıyor. ( Aşağıdaki gibi )
yani okuyup yazdırabiliyorum.
Araştırıyorum.
for (int i = 0; i < listView1.Items.Count; i++) { if (listView1.Items[i].SubItems[2].Text.Trim() == "QBM81-5") { listView1.Items[i].SubItems[2].Text = "12"; } else if (listView1.Items[i].SubItems[2].Text.Trim() == "QPM2100") { listView1.Items[i].SubItems[2].Text = "34"; } }
- Düzenleyen Ergin Yurttaş 5 Temmuz 2019 Cuma 17:54
-
Tekrar merhaba, O kadar araştırdım, ben işin içinden çıkamadım :) Listview’i fullrow falan yapın denmiş, onu da denedim. 3.stundakini okuyup ayrı bir label’e yazdırabiliyorum. Ya da 3.stunu okuyup yine 3.stuna yazdırabiliyorum fakat 3.stunu okuyup 4.stuna yazdıramadım.