c#两个listbox怎么把内容添加到另外个listbox

时间:2020-12-30 15:50:06
c#两个listbox怎么把内容添加到另外个listbox

如图从左边选择可以多选,然后点击下按钮添加到右边,然后左边的消失。右边同理。一个按钮把左边的全部添加到右边,右边同理。还有个按钮随机排列右边的内容。这样怎么做到?能给个例子吗??

14 个解决方案

#1


你可以先学会捕获点击事件,并且把点击的那个 Item 删除。

#2


从左侧移动到右侧
while( listBox左.SelectedItems.Count>0)
{
       listBox右.Items.Add(listBox左.SelectedItems[0]);
       listBox左.Items.Remove (listBox左.SelectedItems[0]);
}

#3


引用 2 楼 stherix 的回复:
从左侧移动到右侧
while( listBox左.SelectedItems.Count>0)
{
       listBox右.Items.Add(listBox左.SelectedItems[0]);
       listBox左.Items.Remove (listBox左.SelectedItems[0]);
}

这个方法要包括在按钮的点击事件中,就可以了,从右往左移是一样的,就是把左右换一下就行。还有,随机分布选项设定一下items的index就行

#4


listbox2.Items.Add*listbox1.SelectedItem(

#5


可是能多选吗?

#6


引用 5 楼 qq_21238201 的回复:
可是能多选吗?


可以多选,按shift就可以多选了,或者直接换CheckListBox控件

#7


添加左边listbox的选中项到右边listbox中,移动左边listbox的选中项

#8


一边 add  一边remove

#9


这个界面貌似在VS里面见过。。。

关键点是获取当前选中的项,看看有没有selectedItem之类的属性吧,或者加复选框也行

#10


没有人写好例子的吗

#11


    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            listBox1.SelectionMode = SelectionMode.MultiSimple;
            listBox2.SelectionMode = SelectionMode.MultiSimple;

            listBox1.Items.Add(1); ;
            listBox1.Items.Add(2);
            listBox1.Items.Add(3);
            listBox1.Items.Add(4);
            listBox1.Items.Add(5);

            button1.Click += new EventHandler(button_Click);
            button2.Click += new EventHandler(button_Click);
            button3.Click += new EventHandler(button_Click);
            button4.Click += new EventHandler(button_Click);
        }

        void button_Click(object sender, EventArgs e)
        {
            switch ((sender as Button).Text)
            {
                case ">": ItemMove(listBox1, listBox2); break;
                case "<": ItemMove(listBox2, listBox1); break;
                case ">>": ItemMove(listBox1, listBox2, true); break;
                case "<<": ItemMove(listBox2, listBox1, true); break;
            }
        }
        void ItemMove(ListBox a, ListBox b, bool all=false)
        {
            var st = new ArrayList();
            if(all) foreach (var item in a.Items) st.Add(item);            
            else foreach (var item in a.SelectedItems) st.Add(item);
            foreach(var item in st)
            {
                b.Items.Add(item);
                a.Items.Remove(item);
            }            
        }
    }
c#两个listbox怎么把内容添加到另外个listbox

#12


引用 10 楼 qq_21238201 的回复:
没有人写好例子的吗



有办法再加个按钮  可以随机排列listbox2的内容吗?

#13


有办法随机排列listbox2的内容吗?

#14


????????????????????能帮忙吗

#1


你可以先学会捕获点击事件,并且把点击的那个 Item 删除。

#2


从左侧移动到右侧
while( listBox左.SelectedItems.Count>0)
{
       listBox右.Items.Add(listBox左.SelectedItems[0]);
       listBox左.Items.Remove (listBox左.SelectedItems[0]);
}

#3


引用 2 楼 stherix 的回复:
从左侧移动到右侧
while( listBox左.SelectedItems.Count>0)
{
       listBox右.Items.Add(listBox左.SelectedItems[0]);
       listBox左.Items.Remove (listBox左.SelectedItems[0]);
}

这个方法要包括在按钮的点击事件中,就可以了,从右往左移是一样的,就是把左右换一下就行。还有,随机分布选项设定一下items的index就行

#4


listbox2.Items.Add*listbox1.SelectedItem(

#5


可是能多选吗?

#6


引用 5 楼 qq_21238201 的回复:
可是能多选吗?


可以多选,按shift就可以多选了,或者直接换CheckListBox控件

#7


添加左边listbox的选中项到右边listbox中,移动左边listbox的选中项

#8


一边 add  一边remove

#9


这个界面貌似在VS里面见过。。。

关键点是获取当前选中的项,看看有没有selectedItem之类的属性吧,或者加复选框也行

#10


没有人写好例子的吗

#11


    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            listBox1.SelectionMode = SelectionMode.MultiSimple;
            listBox2.SelectionMode = SelectionMode.MultiSimple;

            listBox1.Items.Add(1); ;
            listBox1.Items.Add(2);
            listBox1.Items.Add(3);
            listBox1.Items.Add(4);
            listBox1.Items.Add(5);

            button1.Click += new EventHandler(button_Click);
            button2.Click += new EventHandler(button_Click);
            button3.Click += new EventHandler(button_Click);
            button4.Click += new EventHandler(button_Click);
        }

        void button_Click(object sender, EventArgs e)
        {
            switch ((sender as Button).Text)
            {
                case ">": ItemMove(listBox1, listBox2); break;
                case "<": ItemMove(listBox2, listBox1); break;
                case ">>": ItemMove(listBox1, listBox2, true); break;
                case "<<": ItemMove(listBox2, listBox1, true); break;
            }
        }
        void ItemMove(ListBox a, ListBox b, bool all=false)
        {
            var st = new ArrayList();
            if(all) foreach (var item in a.Items) st.Add(item);            
            else foreach (var item in a.SelectedItems) st.Add(item);
            foreach(var item in st)
            {
                b.Items.Add(item);
                a.Items.Remove(item);
            }            
        }
    }
c#两个listbox怎么把内容添加到另外个listbox

#12


引用 10 楼 qq_21238201 的回复:
没有人写好例子的吗



有办法再加个按钮  可以随机排列listbox2的内容吗?

#13


有办法随机排列listbox2的内容吗?

#14


????????????????????能帮忙吗