Exemple #1
0
        private void treeListMenu_DragDrop(object sender, DragEventArgs e)
        {
            try
            {
                Mover = false;
                TreeListNode dragNode, targetNode;
                TreeList     tl = sender as TreeList;
                Point        p  = tl.PointToClient(new Point(e.X, e.Y));

                dragNode   = e.Data.GetData(typeof(TreeListNode)) as TreeListNode;
                targetNode = tl.CalcHitInfo(p).Node;

                if (TipoObjetoSeleccionado_x_Menu == ETipoObjectoSelect.Pagina)
                {
                    if (targetNode.Tag.GetType() == typeof(seg_Menu_Pagina_Info))
                    {
                        InfoPaginaOrigen  = (seg_Menu_Pagina_Info)dragNode.Tag;
                        InfoPaginaDestino = (seg_Menu_Pagina_Info)targetNode.Tag;
                        Mover             = BusPagina.Modificar_Posicion_Pagina(InfoPaginaOrigen, InfoPaginaDestino, ref MensajeError);
                    }

                    if (targetNode.Tag.GetType() == typeof(seg_Menu_Categoria_Info))
                    {
                        InfoPaginaOrigen     = (seg_Menu_Pagina_Info)dragNode.Tag;
                        InfoCategoriaDestino = (seg_Menu_Categoria_Info)targetNode.Tag;
                        InfoPaginaOrigen.Codigo_Categoria = InfoCategoriaDestino.Codigo_Categoria;
                        Mover = BusPagina.ModificarDB(InfoPaginaOrigen, ref MensajeError);
                    }
                }
                if (TipoObjetoSeleccionado_x_Menu == ETipoObjectoSelect.Grupo)
                {
                    if (targetNode.Tag.GetType() == typeof(seg_Menu_Grupo_Info))
                    {
                        InfoGrupoOrigen  = (seg_Menu_Grupo_Info)dragNode.Tag;
                        InfoGrupoDestino = (seg_Menu_Grupo_Info)targetNode.Tag;
                        Mover            = BusGrupo.Modificar_Posicion_Grupo(InfoGrupoOrigen, InfoGrupoDestino, ref MensajeError);
                    }
                    if (targetNode.Tag.GetType() == typeof(seg_Menu_Pagina_Info))
                    {
                        InfoGrupoOrigen               = (seg_Menu_Grupo_Info)dragNode.Tag;
                        InfoPaginaDestino             = (seg_Menu_Pagina_Info)targetNode.Tag;
                        InfoGrupoOrigen.Codigo_Pagina = InfoPaginaDestino.Codigo_Pagina;
                        Mover = BusGrupo.ModificarDB(InfoGrupoOrigen, ref MensajeError);
                    }
                }

                if (TipoObjetoSeleccionado_x_Menu == ETipoObjectoSelect.Item)
                {
                    if (dragNode != null)
                    {
                        if (dragNode.Tag != null)
                        {
                        }
                        else
                        {
                            if (targetNode.Tag.GetType() == typeof(seg_Menu_Grupo_Info))
                            {
                                if (InfoItemDestino.Tipo == "Formulario")
                                {
                                    dragNode         = dragStartHitInfo.Node;
                                    InfoGrupoDestino = (seg_Menu_Grupo_Info)targetNode.Tag;
                                    InfoItem_x_GrupoOrigen.Codigo_Grupo = InfoGrupoDestino.Codigo_Grupo;
                                    InfoItem_x_GrupoOrigen.Codigo_Item  = InfoItemOrigen.Codigo_Item;
                                    InfoItem_x_GrupoOrigen.observacion  = "";
                                    if (Bus_Item_x_Grupo.GrabarDB(InfoItem_x_GrupoOrigen, ref MensajeError))
                                    {
                                        TreeListNode nodeItem;
                                        nodeItem                  = treeListMenu.AppendNode(new object[] { InfoItemOrigen.Descripcion, InfoItemOrigen }, targetNode);
                                        nodeItem.HasChildren      = false;
                                        nodeItem.ImageIndex       = 3;
                                        nodeItem.SelectImageIndex = 3;
                                        nodeItem.Tag              = InfoItemOrigen;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (targetNode.Tag.GetType() == typeof(seg_Menu_Grupo_Info))
                        {
                            dragNode         = dragStartHitInfo.Node;
                            InfoGrupoDestino = (seg_Menu_Grupo_Info)targetNode.Tag;
                            InfoItem_x_GrupoOrigen.Codigo_Grupo = InfoGrupoDestino.Codigo_Grupo;
                            InfoItem_x_GrupoOrigen.Codigo_Item  = InfoItemOrigen.Codigo_Item;
                            if (Bus_Item_x_Grupo.GrabarDB(InfoItem_x_GrupoOrigen, ref MensajeError))
                            {
                                TreeListNode nodeItem;
                                nodeItem                  = treeListMenu.AppendNode(new object[] { InfoItemOrigen.Descripcion, InfoItemOrigen }, targetNode);
                                nodeItem.HasChildren      = false;
                                nodeItem.ImageIndex       = 3;
                                nodeItem.SelectImageIndex = 3;
                                nodeItem.Tag              = InfoItemOrigen;
                            }
                        }
                    }
                }

                if (TipoObjetoSeleccionado_x_Menu == ETipoObjectoSelect.Categoria)
                {
                    if (targetNode.Tag.GetType() == typeof(seg_Menu_Categoria_Info))
                    {
                        InfoCategoriaOrigen  = (seg_Menu_Categoria_Info)dragNode.Tag;
                        InfoCategoriaDestino = (seg_Menu_Categoria_Info)targetNode.Tag;
                        Mover = BusCategoria.Modificar_Posicion_Categoria(InfoCategoriaOrigen, InfoCategoriaDestino, ref MensajeError);
                    }
                }

                if (Mover)
                {
                    tl.SetNodeIndex(dragNode, tl.GetNodeIndex(targetNode));
                    e.Effect = DragDropEffects.Move;
                }
                else
                {
                    e.Effect = DragDropEffects.None;
                }
                treeListMenu.ExpandAll();
            }
            catch (Exception ex)
            {
                string NameMetodo = System.Reflection.MethodBase.GetCurrentMethod().Name;
                MessageBox.Show(param.Get_Mensaje_sys(enum_Mensajes_sys.Error_comunicarse_con_sistemas) + ex.Message + " ", param.Nombre_sistema, MessageBoxButtons.OK, MessageBoxIcon.Error);
                Log_Error_bus.Log_Error(NameMetodo + " - " + ex.ToString());
            }
        }