C# ListBox 左移、右移、上移、下移

2012-11-17 22:53:45|  分类: 技术研讨 |  标签:listbox  |字号 订阅

 
 

/// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listBoxOperate_OnCommand(object sender, EventArgs e)
        {
            Button btn = sender as Button;

List<string> list = new List<string>();

switch (btn.Tag.ToString())
            {
                case "ToRight":
                    if (listBox1.SelectedItems != null)
                    {
                        foreach (var item in listBox1.SelectedItems)
                        {
                            listBox2.Items.Add(item.ToString());
                        }
                        this.listBox2.SelectedIndex = this.listBox2.Items.Count - 1;
                        for (int i = 0; i < listBox1.SelectedIndices.Count; i++)
                        {
                            listBox1.Items.RemoveAt(listBox1.SelectedIndices[i]);
                            i--;
                        }
                    }
                    break;
                case "AllToRight":
                    if (this.listBox1.Items.Count > 0)
                    {
                        for (int i = 0; i < listBox1.Items.Count; i++)
                        {
                            list.Add(listBox1.Items[i].ToString());
                        }
                        for (int j = 0; j < list.Count; j++)
                        {
                            this.listBox2.Items.Add(list[j]);
                        }
                        this.listBox1.Items.Clear();
                        break;
                    }
                    else
                    {
                        break;
                    }
                case "ToLeft":
                   
                    if (listBox2.SelectedItems != null)
                    {
                        foreach (var item in listBox2.SelectedItems)
                        {
                            listBox1.Items.Add(item.ToString());
                        }
                        this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1;
                        for (int i = 0; i < listBox2.SelectedIndices.Count; i++)
                        {
                            listBox2.Items.RemoveAt(listBox2.SelectedIndices[i]);
                            i--;
                        }
                    }
                    break;
                case "AllToLeft":
                    if (this.listBox2.Items.Count > 0)
                    {

for (int i = 0; i < listBox2.Items.Count; i++)
                        {
                            list.Add(listBox2.Items[i].ToString());
                        }
                        for (int j = 0; j < list.Count; j++)
                        {
                            this.listBox1.Items.Add(list[j]);
                        }
                        this.listBox2.Items.Clear();
                        break;
                    }
                    else
                    {
                        break;
                    }
                case "ToUp":
                    // 上移
                    if (this.listBox2.SelectedIndices.Count > 0 &&
                        this.listBox2.SelectedIndices[0] > 0)
                    {
                        int[] newIndices =
                            this.listBox2.SelectedIndices.Cast<int>()
                            .Select(index => index - 1).ToArray();

this.listBox2.SelectedItems.Clear();

for (int i = 0; i < newIndices.Length; i++)
                        {
                            object obj = this.listBox2.Items[newIndices[i]];
                            this.listBox2.Items[newIndices[i]] = this.listBox2.Items[newIndices[i] + 1];
                            this.listBox2.Items[newIndices[i] + 1] = obj;
                            this.listBox2.SelectedItems.Add(this.listBox2.Items[newIndices[i]]);
                        }
                    }

break;
                case "ToDown":

// 下移
                    if (this.listBox2.SelectedIndices.Count > 0 &&
                        this.listBox2.SelectedIndices[this.listBox2.SelectedIndices.Count - 1] <
                        this.listBox2.Items.Count - 1)
                    {
                        int[] newIndices =
                            this.listBox2.SelectedIndices.Cast<int>()
                            .Select(index => index + 1).ToArray();

this.listBox2.SelectedItems.Clear();

for (int i = newIndices.Length; i > 0; i--)
                        {
                            object obj = this.listBox2.Items[newIndices[i - 1]];
                            this.listBox2.Items[newIndices[i - 1]] = this.listBox2.Items[newIndices[i-1]-1];
                            this.listBox2.Items[newIndices[i-1]-1] = obj;
                            this.listBox2.SelectedItems.Add(this.listBox2.Items[newIndices[i-1]]);

}
                    }
                    break;
            }
        }

注意:此方法只是简单的顺序移动,如果某一listbox涉及其事件时,就要加条件!

C# ListBox 左移、右移、上移、下移的更多相关文章

  1. wpf listbox 选中项 上移下移

    原文:wpf listbox 选中项 上移下移 private void MoveUp_Click(object sender, RoutedEventArgs e)         {        ...

  2. jQuery实现左移右移

    <html> <head> <meta charset="utf-8"> <title>完成左移右移</title> & ...

  3. php修改排序,上移下移

    php修改排序,上移下移 /**    $UpDown //移动方向,up或down    $table //表名    $id //当前移动的ID    $id_col //ID字段的名称    $ ...

  4. EASYUI- EASYUI左移右移 GRID中值

    EASYUI左移右移 GRID中值 $("#addAll").click(function(){ var ids = []; var names = []; var srcrows ...

  5. 【转载】c语言数据的左移右移

    原文地址:http://www.cnblogs.com/myblesh/articles/2431806.html 由于在飞控程序中执行效率对程序的影响相当大,所以一个好的运算效率很重要.左移右移比单 ...

  6. 嵌入式C开发---用循环实现左移右移

    //将n左移m位 int byte_to_left_move(int n , int m) { int i , ret = 1 ; if(n == 0 || n < 0) { return ; ...

  7. jQuery实现表格行上移下移和置顶

    jQuery实现表格行上移下移和置顶 我们在操作列表数据的时候,需要将数据行排列顺序进行调整,如上移和下移行,将行数据置顶等,这些操作都可以在前端通过点击按钮来完成,并且伴随着简单的动态效果,轻松实现 ...

  8. JS移动li行数据,点击上移下移(是位置的互换,不是top的偏移量改变)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. table中实现数据上移下移效果

    html 由于vue+Element项目中的table,没有开放的上移下移的api,但是能对数据操作,故思路为数组中的一条数据,再重新添加一条数据,办法有点笨,但是好歹也是实现了,望有好的办法的,请留 ...

随机推荐

  1. 利用js写全选操作

    <script type="text/javascript"> function checkall(qx) { var ck=document.getElementsB ...

  2. https Full Handshake

    1)加密套件交互: 2)密码交换: 3)身份认证: Full Handshake Initially, client and server "agree upon" null en ...

  3. linux调试环境时常用的命令 及 常识

    1.查找文件或文件夹 所在的目录 sudo find / -name your_filename 示例: wangju@wangju-HP--G4:~$ sudo find / -name .jenk ...

  4. DECLARE_MESSAGE_MAP( )

    DECLARE_MESSAGE_MAP( ) 说明: 你的程序中的每一个CCmdTarget的派生类都可以提供一个消息映射以处理消息.在你的类声明的末尾使用DECLARE_MESSAGE_MAP宏.然 ...

  5. 如何让字体大小<12px

    transform:scale( ) -webkit-transform:scale( )  

  6. centos7安装个人网盘nextcloud

    本节介绍如何在centos7上建立个人云盘nextcloud服务器 第一:建立用户nextcloud 第二:安装下载工具wget 第三:把nextcloud账号添加到sudoers目录下 第四:切换到 ...

  7. pythonGUI编程——Qt库(1)

    1.简单示例实现一个小窗口.       PyQt5是一种高级的语言,下面只有几行代码就能显示一个小窗口.底层已经实现了窗口的基本功能. #!/usr/bin/python#coding:utf-8# ...

  8. 洋葱浏览器(Tor Browser)

    第一,洋葱路由器简介 Tor Browser 是個內建「翻牆」功能的網路瀏覽器,藉由「洋蔥路由, The Onion Router (Tor)」匿名瀏覽技術,將上網時所傳遞的訊息層層加密保護,讓使用者 ...

  9. Django——6 模型基础ORM 数据库连接配置 模型的创建与映射 数据的增删改查

    Django Django的ORM简介 数据库连接配置 模型的创建与映射 数据库的增删改查 增数据 查数据及补充 改数据 删数据   Django的ORM系统分析 ORM概念:对象关系映射(Objec ...

  10. 清北学堂模拟赛d3t4 a

    分析:很水的一道题,就是用栈来看看是不是匹配就好了,只是最后没有判断栈是否为空而WA了一个点,以后做题要注意了. #include <bits/stdc++.h> using namesp ...