خانة الاختيار في التحكم في عرض القائمة
-
09-06-2019 - |
سؤال
هل يمكن أن يكون لديك عنصر تحكم في عرض القائمة متعدد الأعمدة حيث يكون أحد الأعمدة عبارة عن خانة اختيار؟سيكون موضع تقدير كبير رمز المثال أو الروابط.
أنا أستخدم فيجوال ستوديو 2005
المحلول
أنشأ Allan Anderson عنصر تحكم مخصصًا ليتيح لك القيام بذلك.يمكنك العثور عليها هنا: http://www.codeproject.com/KB/list/aa_listview.aspx
فيما يلي بعض الأمثلة على التعليمات البرمجية لعنصر التحكم هذا:
GlacialList mylist = new GlacialList();
mylist.Columns.Add( "Column1", 100 ); // this can also be added
// through the design time support
mylist.Columns.Add( "Column2", 100 );
mylist.Columns.Add( "Column3", 100 );
mylist.Columns.Add( "Column4", 100 );
GLItem item;
item = this.glacialList1.Items.Add( "Atlanta Braves" );
item.SubItems[1].Text = "8v";
item.SubItems[2].Text = "Live";
item.SubItems[2].BackColor = Color.Bisque;
item.SubItems[3].Text = "MLB.TV";
item = this.glacialList1.Items.Add( "Florida Marlins" );
item.SubItems[1].Text = "";
item.SubItems[2].Text = "Delayed";
item.SubItems[2].BackColor = Color.LightCoral;
item.SubItems[3].Text = "Audio";
item.SubItems[1].BackColor = Color.Aqua; // set the background
// of this particular subitem ONLY
item.UserObject = myownuserobjecttype; // set a private user object
item.Selected = true; // set this item to selected state
item.SubItems[1].Span = 2; // set this sub item to span 2 spaces
ArrayList selectedItems = mylist.SelectedItems;
// get list of selected items
نصائح أخرى
من الأفضل استخدام التحكم في عرض الشبكة، ولكن إذا كنت تريد ذلك فقط عمود واحد به مربعات اختيار وهذا العمود هو أولاً واحد يمكنك فقط الكتابة:
this.listView1.CheckBoxes = true;
أضف عمود خانة الاختيار كما هو موضح أدناه.
myListView.CheckBoxes = true;
myListView.Columns.Add(text, width, alignment);
أضف ListViewItem كما هو موضح أدناه.
ListViewItem lstViewItem = new ListViewItem();
lstViewItem.SubItems.Add("Testing..");
lstViewItem.SubItems.Add("Testing1..");
myListView.Items.Add(lstViewItem);
لماذا لا تحاول XPTable بواسطة ماثيو هول
ربما ListView.Checkboxes.
يمكنك ضبط CheckBoxes
الملكية ل true
.في الكود يمكن القيام بذلك على النحو التالي:
listView1.CheckBoxes = true;
يمكنك استخدام طريقة عرض الشبكة بدلاً من ذلك، حيث يمنحك ذلك تحكمًا أكثر دقة في محتويات الأعمدة.
يمكنك المحاولة TreeViewAdv.إنه مفتوح المصدر ويتم استضافته على sourceforge.