none
Listview Listeleme ? RRS feed

  • Soru

  • Merhabalar,

    Listviewde listeleme yapmak istiyorum. Listeleme de günümüz tarihine en yakın 10 tarihi göstermesi lazım. Listeyi accessden çekiyorum. Nasıl yapabilirim?

    7 Ağustos 2016 Pazar 13:34

Yanıtlar

  • Aşşağıdaki methot ListView'deki bütün tarihler arasından en büyükden küçüğe doğru 10 tarihi sıralıyor. Eğer üzerinde biraz değişiklik yaparsan istediğin şeyi kolayca elde edebilirsin.

    void sirala()
            {
                string[] str = new string[listView1.Items.Count + 1];
    
                int i = 0;
                int j = 0;
    
                while (i < listView1.Items.Count)
                {
                    string tarih = "";
    
                    while (j < 3)
                    {
                        string bilgi = listView1.Items[i].SubItems[j].ToString();
    
                        tarih = tarih + "." + bilgi.ToString().Replace("ListViewSubItem: {", "").Replace("}", "");
    
                        j++;
                    }
    
                    try
                    {
                        str[i] = (DateTime.Parse(tarih)).ToString();
                    }
                    catch (Exception)
                    {
    
                    }
    
                    j = 0;
                    i++;
                }
    
                string[] tarihler = new string[str.Length - 1];
                DateTime[] tarih0 = new DateTime[str.Length - 1];
    
                int k = 0;
    
                while (k < str.Length - 1)
                {
                    tarihler[k] = str[k].ToString();
                    tarih0[k] = DateTime.Parse(tarihler[k]);
                    k++;
                }
    
                DateTime gecici;
    
                for (int V = 0; V < str.Length - 1; V++)
                {
                    for (int H = V + 1; H < str.Length - 1; H++)
                    {
                        if (tarih0[H] > tarih0[V])
                        {
                            gecici = tarih0[V];
                            tarih0[V] = tarih0[H];
                            tarih0[H] = gecici;
                        }
                    }
                }
    
                string en_yakin_on = "";
                int r = 0;
                try
                {
                    while (r < 10)
                    {
                        string ekle = tarih0[r].ToString().Replace(" 00:00:00", "");
                        en_yakin_on = en_yakin_on + ekle + "\n";
                        r++;
                    }
                }
                catch (Exception)
                {
                    
                }
                MessageBox.Show("Tarihler sıralandı: en yakın "+r.ToString()+":\n\n" + en_yakin_on,"Tarih Listesi");
            }

    Buda tarihlerden bir ekran görüntüsü ve çıktısı:

    ListView1


    7 Ağustos 2016 Pazar 16:20