[ad_1]
يوجد أدناه الكود الذي أستخدمه لإضافة عناصر إلى عرض القائمة.
ج #
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; //} } }
يوجد أدناه الفصل الذي أستخدمه لفرز عمود عرض القائمة
ج #
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; } }
بعد تضمين عمود فرز عرض القائمة هذا. إذا حاولت فرز الأعمدة، فافتح الملف لإضافة عناصر إلى عرض القائمة وتلقي رسالة الخطأ أدناه. أي مساعدة ستكون موضع تقدير كبير.
<br /> InvalidArgument=Value of '3' is not valid for 'index'. Parameter name: index<br />
ما حاولت:
لقد قمت بمراجعة جميع صفحات Google ولكن لم أجد أي حل مثالي.
الحل 1
وأخيرا وجدت الحل على نفسي. لكن الجزء السيء هو أنني لست متأكدًا من كيفية عمله …
تمت إضافة السطر أدناه قبل إزالة جزء Listview Items الذي أدى إلى حل المشكلة
ج #
listView1.Sorting = System.Windows.Forms.SortOrder.None;
ملاحظة: ربما قبل إعادة إنشاء عناصر عرض القائمة قمت بتسوية الفرز إلى NONE مما يحل مشكلتي.
الحل 2
ListView1.ListViewItemSorter = لا شيء
[ad_2]
コメント