中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考

發布時間:2020-06-28 05:37:28 來源:網絡 閱讀:711 作者:jirigala_bao 欄目:編程語言

應用軟件是否好用就體現在一些細節操作上,開發人員是否考慮到了很多細節,例如一個樹形結構的數據若不支持拖拽功能那用起來會很糟糕一些,用戶體驗也會不太爽,下面就以通用權限管理系統組件源碼中的組織機構(部門)管理模塊為例子,講解一下樹型結構TreeView節點拖拽的簡單功能實現。

 

   其實組織機構管理模塊平時不怎么用到拖拽功能,但是往往在數據初始化時為了實現快速輸入數據及進行整理調整數據時,往往就非常迫切需要一個靈活的組織機構管理器,當每到年底或者公司進行大的人事調整時也會遇到后臺管理員迫切需要拖拽功能的需求,平時組織機構不會有大變動。

 

   軟件功能是否好用,往往是體現在最需要折騰數據時是否好用?養兵千日用兵一時,一般沒經過磨難的新開發的軟件往往會想得不夠周到,關鍵時刻容易掉鏈子,經不起客戶的折騰。

 

   例子程序運行效果如何下:

   C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考

   當然在節點拖拽時,需要注意幾個事情:

   1:拖拽時總需要有提示信息比較好,防止誤操作后找不到被托摘到哪里去了。

   2:父親節點總不能拖拽到自己的子節點上,那不是死循環或者亂了輩份了不是?

 

   為了讓TreeView支持拖拽功能,需要注意以下幾個屬性設置及相應的事件代碼。

   C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考

   C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考

 

    代碼實現參考如下:

        private void tvOrganize_ItemDrag(object sender, ItemDragEventArgs e)
        {
            
if (this.permissionEdit)
            {
                
// 開始進行拖放操作,并將拖放的效果設置成移動。
                this.DoDragDrop(e.Item, DragDropEffects.Move);
            }
        }

        
private void tvOrganize_DragEnter(object sender, DragEventArgs e)
        {
            
// 拖動效果設成移動
            e.Effect = DragDropEffects.Move;
        }

        
private void tvOrganize_DragDrop(object sender, DragEventArgs e)
        {
            
// 定義一個中間變量
            TreeNode treeNode;
            
//判斷拖動的是否為TreeNode類型,不是的話不予處理
            if (e.Data.GetDataPresent("System.Windows.Forms.TreeNode"false))
            {
                
// 拖放的目標節點
                TreeNode targetTreeNode;
                
// 獲取當前光標所處的坐標
                
// 定義一個位置點的變量,保存當前光標所處的坐標點
                Point point = ((TreeView)sender).PointToClient(new Point(e.X, e.Y));
                
// 根據坐標點取得處于坐標點位置的節點
                targetTreeNode = ((TreeView)sender).GetNodeAt(point);
                
// 獲取被拖動的節點
                treeNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");
                
// 判斷拖動的節點與目標節點是否是同一個,同一個不予處理
                if (BaseInterfaceLogic.TreeNodeCanMoveTo(treeNode, targetTreeNode))
                {
                    
if (BaseSystemInfo.ShowInformation)
                    {
                        
// 是否移動部門
                        if (MessageBox.Show(AppMessage.Format(AppMessage.MSG0038, treeNode.Text, targetTreeNode.Text), AppMessage.MSG0000, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                        {
                            
return;
                        }
                    }
                    ServiceManager.Instance.OrganizeService.MoveTo(UserInfo, treeNode.Tag.ToString(), targetTreeNode.Tag.ToString());
                    
// 往目標節點中加入被拖動節點的一份克隆
                    targetTreeNode.Nodes.Add((TreeNode)treeNode.Clone());
                    
// 將被拖動的節點移除
                    treeNode.Remove();
                }
            }
        }
復制代碼

 

  不足之處,希望大家都指點多留言,有錯就積極改進,雖然博客園到處是高手,但是我們普通老百姓也往往需要一些實實在在的基礎功能。

 

 

將權限管理、工作流管理做到我能力的極致,一個人只能做好那么很少的幾件事情。

About

C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考

吉日嘎拉(蒙古語為吉祥如意),2000年畢業于黑龍江大學計算機系軟件專業,目前定居杭州,典型的IT軟件土鱉一個,外號“軟件包工頭”。

 

通用權限管理系統組件(GPM - General Permissions Manager)自2003年開始發布,目前是國內注冊用戶和免費盜版用戶最多的權限管理系統,是各種信息管理系統開發中徹底的權限解決方案。本組件支持多種主流數據庫(Oracle、sqlsever、db2、mysql),功能強大,使用方便,代碼簡潔,思路嚴謹,被廣大支持者稱為權限管理系統中的“走火入魔級權限管理系統”。

 

精心維護通用權限管理系統組件(GPM - General Permissions Manager)有8年多,3年的不斷推廣,20萬行經典的業務邏輯積累,經過上萬次的調試修正,經歷了四百個付費客戶,上百軟件公司的實戰開發。

11年以上開發經驗,外企工作5年,上市公司3年,獨立經營軟件公司2年,主持研發部門管理工作4年以上。

將權限管理、工作流做到我能力的極致,一個人只能做好那么很少的幾件事情。

C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考
QQ:252056973,Mail:jirigala_bao@hotmail.com

訪問者分布C#實現樹型結構TreeView節點拖拽的簡單功能,附全部源碼,供有需要的參考

通用權限管理模塊的嚴謹設計定位、精心編碼實現、不斷維護推廣、持續優化改進,主要是為了實現一個可以高度重復利用勞動成果的工具軟件并×××給所需的人們,另想成為國人值得驕傲的知名軟件功能模塊。

可供國內管理類開發人員在日常工作中進行靈活二次開發利用的模塊,開發管理類軟件的必備工具之一,我們的目標就是讓程序員早點兒回家休息。

淘寶店地址:http://jirigala.taobao.com

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

瑞昌市| 江陵县| 昌平区| 延吉市| 武川县| 维西| 堆龙德庆县| 礼泉县| 广宁县| 临桂县| 石狮市| 博湖县| 江安县| 台湾省| 金门县| 丁青县| 尼勒克县| 灵山县| 西城区| 雷州市| 石阡县| 东乡| 翼城县| 信丰县| 南澳县| 吴川市| 内黄县| 安义县| 文成县| 拜泉县| 延寿县| 抚宁县| 保德县| 英吉沙县| 威信县| 龙川县| 通州区| 兴仁县| 大同市| 尼玛县| 文水县|