在做一个windows窗体项目,窗体的AllowDrop属性设置为true,代码写好以后测试拖放,发现代码被正常执行,但是鼠标还是显示的不可用。请大家指点一下。

解决方案 »

  1.   

    加上事件private void Form1_DragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.Bitmap) || e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            e.Effect = DragDropEffects.Copy;
        }
        else
        {
            e.Effect = DragDropEffects.None;
        }
    }
      

  2.   

            void clsbtn_MouseMove(object sender, MouseEventArgs e)
            {            clsReservationTable clsbtn = sender as clsReservationTable;
                if (clsbtn != null)
                {
                    if (e.Button == MouseButtons.Left)
                    {
                        clsbtn.DoDragDrop(this, DragDropEffects.Copy);
                    }
                }
            }        void clsbtn_DragEnter(object sender, DragEventArgs e)
            {
                e.Effect = DragDropEffects.Copy;
            }        void clsbtn_DragDrop(object sender, DragEventArgs e)
            {
                clsReservationTable clsbtn = sender as clsReservationTable;
                if (clsbtn != null)
                {
                    clsReservationTable btn = e.Data.GetData(typeof(clsReservationTable)) as clsReservationTable;
                    if (btn != null)
                    {
                        if (btn.p_ResInfo.p_List.Count > 0)
                        {
                            Model.clsmq_Reservation model = btn.p_ResInfo.p_List[0];
                            model.a_TableID = clsbtn.p_id;
                            model.a_TableNubmer = clsbtn.p_TableNumber;
                            BLL.clsmq_Reservation bll = new AldeloEx.BLL.clsmq_Reservation();
                            bll.Update(model);
                            daServer.fnLog("move Reservation from TableNubmer:" + btn.p_TableNumber + "  to :" + clsbtn.p_TableNumber);
                            this.refresh();
                        }
                    }            }
            }
      

  3.   

    DragEventArgs.Effect 属性:获取或设置拖放操作中目标放置效果以下效果可选:
    All 从拖动源复制、移除数据,并将其滚动到放置目标中。  
    Copy 将数据复制到放置目标。  
    Link 将拖动源中的数据链接到放置目标。  
    Move 将拖动源的数据移动到放置目标。  
    None 放置目标不接受该数据。  
    Scroll 即将在放置目标中开始滚动,或当前正在滚动。  
      

  4.   

    楼主,1楼的代码是试过的有效果,如果不设置这个状态,图标是禁止符号,加上这段代码,方块中一个加号.这个方法(Form1_DragEnter)一定要在属性窗口(DragEnter)指定它.