示例#1
0
文件: Form1.cs 项目: kcoyner/sandbox
 public static void IInsertListViewItem(Form form, ListView t, RFIDTag tag)
 {
     if (t.InvokeRequired)
     {
         InsertListViewItem a = new InsertListViewItem(InsertListViewItem1);
         form.Invoke(a, new Object[] { t, tag});
     }
     else
     {
         updateListView(t, tag);
     }
 }
        /// <summary>
        /// Adds an item in the collection and in the TreeListView
        /// </summary>
        /// <param name="item"></param>
        /// <returns>Index of the item in the collection</returns>
        public virtual int Add(TreeListViewItem item)
        {
            int index = GetInsertCollectionIndex(item);

            if (index == -1)
            {
                return(-1);
            }
            if (Parent != null)
            {
                item.SetParent(Parent);
            }
            item.Items.Comparer = this.Comparer;
            ReadWriteLock.AcquireWriterLock(-1);
            int treelistviewindex = GetInsertTreeListViewIndex(item);

            // Insert in the ListView
            if (treelistviewindex > -1)
            {
                ListView           listview = (ListView)TreeListView;
                InsertListViewItem insert   = new InsertListViewItem(listview.Items.Insert);
                if (listview.InvokeRequired)
                {
                    listview.Invoke(insert, new object[] { treelistviewindex, (ListViewItem)item });
                }
                else
                {
                    listview.Items.Insert(treelistviewindex, (ListViewItem)item);
                }
                if (item.IsExpanded)
                {
                    item.Expand();
                }
                item.SetIndentation();
            }
            // Insert in this collection
            if (index > -1)
            {
                List.Insert(index, item);
            }
            ReadWriteLock.ReleaseWriterLock();
            return(index);
        }
 /// <summary>
 /// Adds an item in the collection and in the TreeListView
 /// </summary>
 /// <param name="item"></param>
 /// <returns>Index of the item in the collection</returns>
 public virtual int Add(TreeListViewItem item)
 {
   int index = GetInsertCollectionIndex(item);
   if(index == -1) return(-1);
   if(Parent != null) item.SetParent(Parent);
   item.Items.Comparer = this.Comparer;
   ReadWriteLock.AcquireWriterLock(-1);
   int treelistviewindex = GetInsertTreeListViewIndex(item);
   // Insert in the ListView
   if(treelistviewindex > -1)
   {
     ListView listview = (ListView) TreeListView;
     InsertListViewItem insert = new InsertListViewItem(listview.Items.Insert);
     if(listview.InvokeRequired)
       listview.Invoke(insert, new object[] {treelistviewindex, (ListViewItem) item});
     else
       listview.Items.Insert(treelistviewindex, (ListViewItem) item);
     if(item.IsExpanded) item.Expand();
     item.SetIndentation();
   }
   // Insert in this collection
   if(index > -1)
     List.Insert(index, item);
   ReadWriteLock.ReleaseWriterLock();
   return(index);
 }