سؤال

هل يمكن أن يكون لديك عنصر تحكم في عرض القائمة متعدد الأعمدة حيث يكون أحد الأعمدة عبارة عن خانة اختيار؟سيكون موضع تقدير كبير رمز المثال أو الروابط.

أنا أستخدم فيجوال ستوديو 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 بواسطة ماثيو هول

يمكنك ضبط CheckBoxes الملكية ل true.في الكود يمكن القيام بذلك على النحو التالي:

listView1.CheckBoxes = true;

يمكنك استخدام طريقة عرض الشبكة بدلاً من ذلك، حيث يمنحك ذلك تحكمًا أكثر دقة في محتويات الأعمدة.

يمكنك المحاولة TreeViewAdv.إنه مفتوح المصدر ويتم استضافته على sourceforge.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top