首页 / 浏览问题 / 组件GIS / 问题详情
LayersControl的DragDrop回调函数不执行
7EXP 2020年07月16日

iObject 9D,桌面二次开发

两个回调函数,其中DragOver对应的回调函数会在事件触发时执行,但DragDrop对应的回调函数不会在事件触发时执行。

// 初始化函数中绑定了回调函数
this.layersControl1.DragOver += new DragEventHandler(layersControl1_DragOver);
this.layersControl1.DragDrop += new DragEventHandler(layersControl1_DragDrop);



// 类中定义了两个回调函数

        /// LayersControl拖拽放开事件
        这个函数我打断点看了,鼠标放开的时候也不会执行,进不去这个函数
        private void layersControl1_DragDrop(object sender, DragEventArgs e)
        {
            int i = 0;
            try
            {
                i++;
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }




        /// LayersControl拖拽进入事件
        private void layersControl1_DragOver(object sender, DragEventArgs e)
        {
            try
            {
                WorkspaceTreeDragData data = e.Data.GetData(typeof(WorkspaceTreeDragData)) as WorkspaceTreeDragData;

                if (data.DataType == WorkspaceTreeNodeDataType.Dataset)
                {
                    e.Effect = DragDropEffects.Move;
                }
                else
                {
                    e.Effect = DragDropEffects.None;
                }

                layersControl1.Focus();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }

1个回答

你用的是idesktop扩展开发还是objects.net组件开发
4,620EXP 2020年07月17日
.net 组件开发
你是想要将工作空间的数据集直接拖拽到图层窗口执行添加到地图吗?这部分超图控件自己已经完成了封装的呢,建议直接使用
...