zoukankan      html  css  js  c++  java
  • 【ListBox】ListBox的相关操作

    Winform中两个listbox的操作是平时比较常用的操作。

    本次将以一个Winform实例来分享一下两个listbox的操作,包括:listbox添加项,项的上移下移等操作。

    假设有两个listbox:一个叫listBoxCategory,这个listbox是一个包含所有建筑元素项目的项;另一个叫listBoxSelected,这个是将左边的listbox中的项选中并添加到的listbox。

     

    <1>  Resource文件的定义:

    <2>  listBox中的每一项定义:

    public class CategoryItem
        {
           public CategoryItem(string categoryName, int categoryId)
           {
               CategoryName = categoryName;
               CategoryId = categoryId;
           }
           public string CategoryName  {get; set;}
           public int CategoryId  {get; set;}
        }

    <3>  listBoxCategoery在初始化时,它的每一项都是由doc.Settings.Categories提供,但是不能和listBoxSelected中的初始项冲突;listBoxSelected中的初始项由Existinglist提供

     private void listboxInitialize(Document doc)
            {
                List<CategoryItem> categoryitems = new List<CategoryItem>();
                listBoxCategory.DisplayMember = "CategoryName";
                listBoxCategory.ValueMember = "id";
                listBoxSelected.DisplayMember = "CategoryName";
                listBoxSelected.ValueMember = "id";
                foreach (Category cat in doc.Settings.Categories)
                {
                    bool checkreapter = false;
                    foreach(int defaultlistId in Existinglist)
                    {
                         if(cat.Id.IntegerValue==defaultlistId)
                         {
                             checkreapter = true; break;
                         }
                    }
                    if(checkreapter == false)
                    {
                        listBoxCategory.Items.Add(new CategoryItem(cat.Name, cat.Id.IntegerValue));  //防止和listBoxSelected中的项冲突
                    }                        
                }
                foreach (int defaultlistId in Existinglist)
                {
                    listBoxSelected.Items.Add(new CategoryItem(doc.Settings.Categories.get_Item((BuiltInCategory)defaultlistId).Name, defaultlistId));
                }
            }

    <4>  listBoxSeleted的上移与下移:

    private void buttonUp_Click(object sender, EventArgs e)
            {
                int listboxLength = listBoxSelected.Items.Count;   
                int selectindex = listBoxSelected.SelectedIndex;
                if (listBoxSelected.SelectedItem !=null)
                {
                    if (listboxLength > selectindex && selectindex > 0)
                    {
                        object oTempItem = listBoxSelected.SelectedItem;
                        listBoxSelected.Items.RemoveAt(selectindex);
                        listBoxSelected.Items.Insert(selectindex - 1, oTempItem);
                        listBoxSelected.SelectedIndex = selectindex - 1;
                    } 
                }
                else
                {
                    MessageBox.Show(Res.StringReminder);
                }
            }
    
            private void buttonDown_Click(object sender, EventArgs e)
            {
                int listboxLength = listBoxSelected.Items.Count;
                int selectindex = listBoxSelected.SelectedIndex;
                if (listBoxSelected.SelectedItem !=null)
                {
                   if (listboxLength > selectindex && selectindex < listboxLength - 1)
                   {
                       object oTempItem = listBoxSelected.SelectedItem;
                       listBoxSelected.Items.RemoveAt(selectindex);
                       listBoxSelected.Items.Insert(selectindex + 1, oTempItem);
                       listBoxSelected.SelectedIndex = selectindex + 1;
                   }
                }
                else
                {
                    MessageBox.Show(Res.StringReminder);
                }
            }

    <5> listBoxCategory中的项添加到listBoxSelected:

     private void buttonAdd_Click(object sender, EventArgs e)
            {
                 listBoxSelected.DisplayMember = "CategoryName";
                 listBoxSelected.ValueMember = "id";
                 bool checklist = false;
                 if (listBoxCategory.SelectedItem !=null)
                 {
                     foreach(object obj in listBoxSelected.Items)
                     {
                          if (((CategoryItem)listBoxCategory.SelectedItem).CategoryName == ((CategoryItem)obj).CategoryName)
                          {
                              checklist = true; 
                              break;              
                          }
                     }
                     if(checklist==true)
                     {
                         MessageBox.Show(Res.StringRepeat);
                     }
                     else
                     {
                         for (int i = listBoxCategory.SelectedItems.Count - 1; i >= 0; i--)
                         {
                             listBoxCategory.SelectedItem = listBoxCategory.SelectedItems[i];
                             listBoxSelected.Items.Add(listBoxCategory.SelectedItem);
                             listBoxCategory.Items.Remove(listBoxCategory.SelectedItem);
                         }  
                     }
                                
                 }
                 else
                 {
                       MessageBox.Show(Res.StringReminder);
                 }  
            }

    <6> listBoxcategory中的项双击添加到listBoxSelected中:

    private void listBoxCategory_DoubleClick(object sender, EventArgs e)
            {
                   buttonAdd.PerformClick();         
            }
  • 相关阅读:
    html 上传图片前预览
    php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法
    php 计算 pdf文件页数
    php 获取半年内每个月的订单数量, 总价, 月份
    php 获取两个数组之间不同的值
    小程序支付功能
    关于nginx的Job for nginx.service failed because the control process exited with error code.错误
    linux 安装 Apollo
    MongoDB待续。。。
    ABP vNext...待续
  • 原文地址:https://www.cnblogs.com/lovecsharp094/p/5427150.html
Copyright © 2011-2022 走看看