在点击粉红色按钮时,点击的按钮会出现在自己选择那一天的右边 例如我点击“小”那么该按钮就会出现在第2天的右边。而且天数之间的按钮可以相互拖动。天数也可以通过鼠标右击进行增加、复制等操作
请问这个功能怎么实现或者有什么控件可以实现这种功能?谢谢!

解决方案 »

  1.   

    有人知道怎么弄的吗?或者告诉我那些按钮拖动怎么实现的也行?我用DragDrop、DragEnter、DragLeave、DragOver等事件怎么都没反应,求解~~
      

  2.   

    首先这些小图片(当然可能是其他,如控件)保存到两个集合中,分别为第一天和第二天,在提供一个方法,用来动态将这些图片添加到相应位置,添加之前有必要做个判断,要先删除之前添加上去的图片。
    你现在要做的就是,根据点的按钮图片的不同,对这两个集合做相应的操作而已(“天数也可以通过鼠标右击进行增加、复制等操作”)这也转变成了对集合的操作,统一管理,最后在“刷新”一下此区域就行了可以用panl,在里面动态添加控件,也可清空,这样来管理
      

  3.   

    恩 谢谢你给的思路,请问一下 天数之间的按钮可以相互拖动如何实现,我用DragDrop、DragEnter、DragLeave、DragOver等事件怎么都没反应?
      

  4.   

    你要使用,mousedown,mouseup,mousemove 事件
      

  5.   

    具体没有实现,用mousedown,mouseup,mousemove等时间,在鼠标按下按钮没有松开时,创建一个图片,图片随鼠标的移动而移动,最后判断释放时鼠标的位置,你可以将此位置坐标点根据panl的坐标相对位置在集合中进行不同的处理(如果向往两张图片中加你插入的话,做些相对位置的坐标处理转换)
      

  6.   

    用的是Button  能告诉我每个方法具体要干些什么吗?如何确定要拖到哪里?  我很菜 希望谅解
      

  7.   

    public partial class Form1 : Form
        {
            bool down = false;
            int left = 0;
            int top = 0;
            public Form1()
            {
                InitializeComponent();
            }        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
            {
                down = true;
                left = e.X;
                top = e.Y;
            }        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
            {
                down = false;           
            }        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
            {
                if (down)
                {
                    this.pictureBox1.Location = new Point(pictureBox1.Location.X + e.X-left, pictureBox1.Location.Y + e.Y-top);
                }
            }
        }你看看,我用的picturebox做了下图片移动