Tidak dapat menambahkan item tampilan daftar setelah mengurutkan kolom

pemrograman


Di bawah ini adalah kode yang saya gunakan untuk menambahkan item ke tampilan daftar.

C#
OpenFileDialog FLoc = new OpenFileDialog();
           Application.DoEvents();
           FLoc.Title = "Select Host Name File";
           FLoc.Filter = "TXT files|*.txt";
           FLoc.InitialDirectory = @"C:\";

           if (FLoc.ShowDialog() == DialogResult.OK)
           {
               try
               {
                   FileName = FLoc.FileName;
                   FileLines = File.ReadAllLines(FileName);

                   if (listView1.Items.Count > 0)
                   {
                       foreach (ListViewItem itemR in listView1.Items)
                       {
                           itemR.Checked = false;
                           itemR.Remove();
                       }

                       int LC = 0;
                       foreach (var item1 in FileLines)
                       {
                           this.listView1.Focus();
                           LC = listView1.Items.IndexOf(listView1.Items.Add(item1));
                        //   listView1.Items[LC].SubItems.Add("");
                         //  listView1.Items[LC].Checked = true;

                       }
                       comboBox1.ResetText();
                       DTP.Value = DateTime.Today;

                   }
                   else
                   {


                       foreach (var item2 in FileLines)
                       {
                           //below condition to avoid duplicate entries in listview
                           //if (listView1.FindItemWithText(item) == null)
                           //{
                           int LC = listView1.Items.IndexOf(listView1.Items.Add(item2));
                           listView1.Items[LC].Checked = true;
                           //}


                       }
                   }

di bawah ini adalah kelas yang saya gunakan untuk mengurutkan kolom tampilan daftar

C#
class ListViewItemComparer : IComparer
   {
       private int col;
       private System.Windows.Forms.SortOrder order;
       public ListViewItemComparer()
       {
           col = 0;
           order = System.Windows.Forms.SortOrder.Ascending;
       }
       public ListViewItemComparer(int column, System.Windows.Forms.SortOrder order)
       {
           col = column;
           this.order = order;
       }
       public int Compare(object x, object y)
       {
           int returnVal = -1;
           returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,
                                   ((ListViewItem)y).SubItems[col].Text);
           // Determine whether the sort order is descending.
           if (order == System.Windows.Forms.SortOrder.Descending)
               // Invert the value returned by String.Compare.
               returnVal *= -1;
           return returnVal;
       }
   }

setelah memasukkan kolom penyortiran tampilan daftar ini. jika saya mencoba mengurutkan kolom lalu membuka file untuk menambahkan item ke tampilan daftar, saya mendapatkan pesan kesalahan di bawah ini. bantuan apa pun akan sangat dihargai.

<br />
InvalidArgument=Value of '3' is not valid for 'index'. Parameter name: index<br />

Apa yang saya coba:

saya telah menelusuri semua halaman Google tetapi tidak dapat menemukan solusi yang tepat.

Solusi 1

akhirnya menemukan solusi pada diri saya sendiri. Tetapi bagian buruknya adalah saya tidak yakin cara kerjanya…

menambahkan baris di bawah ini sebelum bagian Hapus Item Tampilan Daftar yang menyelesaikan masalah

C#
listView1.Sorting = System.Windows.Forms.SortOrder.None;

PS: Mungkin sebelum membuat ulang item tampilan daftar saya menyelesaikan penyortiran ke NONE yang menyelesaikan masalah saya.

Solusi 2

ListView1.ListViewItemSorter = Tidak Ada

コメント

タイトルとURLをコピーしました