问题描述:对60台机子进行分组控制,每个机子都有编号1,2,3-60,对应id吧,固定不变。
分成3组。
每组的机子,都是手动的去60个机子里去选的。
组与组之间不能重复,比如说,1号机被1组选择了,其他组就不能有了。。组选的次序,一组选完,二组选,然后三组选。
不知道用什么控件,去完成相关的操作。
需要思路或者是可行的案列,看到过相关问题的可以发个链接。自己想的是,比如说弄3组,弄3个button控件,分别是1,2,3,组。下面是checkedListBox控件,按一个组,控件,然后去选择一个组的机器号,然后按确定,保存数据库。
这块,可以这样,但是重复的怎么办。。无法判断,组与组之间的重复问题。人家想要的效果,是把设备的图标往组里面拖。。就是这组了,这个宝宝能力有限,可实现不了。。如果有知道的可以对这个问题,给点想法。。
我是尽量把功能实现,界面的相关美化,后期再说。
简单的说下项目背景:做的是上位机,对各个设备进行操作,有60个设备。要分成几组。分组这是其中的一个部分。新的需求图片是之前做好的方案设计,没分组。完成了相关功能。界面丑。。见谅

解决方案 »

  1.   

    你可以用PictureBox,图标选一个主机的图标,更形象,然后用拖动的方法来操作。如图,拖到右边的分组框里,主机图标将从左边框里消失。
      

  2.   

    你存储设备状态的data里面,有id列和分组列。每次需要分组前,对data读取一遍,将未分组的数据取出来,分组之后,将分到第几个组的数据写入data,自然就可以确保不同分组间设备不重复了。
      

  3.   

    private void listView1_ItemDrag(object sender, ItemDragEventArgs e)
    {
        var items = new List<ListViewItem>();
        items.Add((ListViewItem)e.Item);
        foreach (ListViewItem lvi in listView1.SelectedItems)
        {
            if (!items.Contains(lvi))
            {
                items.Add(lvi);
            }
        }
        listView1.DoDragDrop(items, DragDropEffects.Move);
    }private void listView2_DragOver(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(typeof(List<ListViewItem>)))
        {
            e.Effect = DragDropEffects.Move;
        }
    }private void listView2_DragDrop(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(typeof(List<ListViewItem>)))
        {
            var items = (List<ListViewItem>)e.Data.GetData(typeof(List<ListViewItem>));
            foreach (ListViewItem lvi in items)
            {
                lvi.ListView.Items.Remove(lvi);
                listView2.Items.Add(lvi);
            }
        }
    }