TreeListのDevExpress社の実現は、ノード上のカスタムコンテキストメニューを追加し、達成するためにノード機能を削除します

シーン

Winフォームのコントロール-DevExpress18ダウンロードと登録をインストールし、VSで使用します。

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100061243

どのようTreeListのDevExpress社は、例から始めて、データソースを設定します。

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102548490

ツリーの実現後、我々はあなたが、右クリックして確認のポップ後に実現します現在のノードを削除、ツリーにポップ・ノードを達成したいです。

注意:

ブログのホーム・ページ:
https://blog.csdn.net/badao_liumang_qizhi
の社会的関心番号
猿の横柄プログラム
買収関連のプログラミング電子書籍、チュートリアル、無料ダウンロードのためにプッシュ。

実現

ここでは、完成荷重の形でのイベントでTreelistマウスクリックイベントをバインドします。

この .treeList2.MouseClick + = treeList2_MouseClick。

イベントメソッドで

プライベート 無効 treeList2_MouseClick(オブジェクト送信者、MouseEventArgs E)
        {
            // 获取当前TreeList对象 
            DevExpress.XtraTreeList.TreeList treeList =送信者としてDevExpress.XtraTreeList.TreeList。
            もし(treeList!= nullの && treeList.Selection.Count == 1 
            {
                オブジェクト idValue = NULL ;
                文字列 strIdValue = String.Emptyを。
                NODEDATA DataTreeNode = ヌル;
                 // DataSourceプロパティTreeListにより、すべてのノードのリストを取得する 
                リスト<Da​​taTreeNode>データソース= treeList.DataSource AS一覧<Da​​taTreeNode> ;
                 IF(!のDataSource = ヌル
                {
                    // 最初の属性Idのノードの選択されたセット取得 
                    idValue treeList.Selection = [ 0 ]以降.getvalue(" 同上" )。
                    strIdValue = idValue.ToString();
                     // 取得し、現在選択されたノードのDataTreeNodeオブジェクト 
                    NODEDATA = datasource.Where <Da​​taTreeNode>(P => == p.id strIdValue).FirstOrDefault <Da​​taTreeNode> ();
                     IF(!NODEDATA = ヌル
                    {
                        // 行全体が選択可能-注目ノードの外観を提供しているかどうかを取得または設定 
                            = treeList.OptionsSelection.EnableAppearanceFocusedRowをtrueに ;                                 // 行全体を選択可能

                            #region右クリックし、コンテキストメニュー-ファイルを比較するために削除
                             // マウスの右ボタンをクリックした場合で
                            のIF(e.Button == System.Windows.Forms.MouseButtons.Right)
                            {
                                // 右クリックメニュー構築 
                                System.Windows.Forms.ContextMenu ctxMenu = 新新)System.Windows.Forms.ContextMenuを(;
                                 // 右構築のメニュー項目を削除 
                                System.Windows.Forms.MenuItem mnuDelete = 新新(System.Windows.Forms.MenuItemを);
                                mnuDelete.Textは = 現在のファイルを削除する;
                                 // 削除]メニュー項目をクリックしてイベントのサブスクリプション 
                                mnuDelete.Click + = デリゲートオブジェクトS、EventArgsのがEA)
                                {
                                    // DevExpress社のダイアログ 
                                    DialogResult DialogResult = DevExpress.XtraEditors.XtraMessageBox.Show(String.Formatの(" あなたは必ずこの実験データを削除したい、それ[{0}]?\ rをする\ n個の後、削除を復元することができない!"、NodeData.Id) 、" タイトル" 、System.Windows.Forms.MessageBoxButtons.YesNo、MessageBoxIcon.Question);
                                     // [はい]をクリックすると
                                    IFを(DialogResult == DialogResult.Yes)
                                    {
                                        試します
                                        {
                                            文字列 fileNameに= String.Emptyを。

                                            #region対応するツリーノードを削除
                                             // ノードは、プライマリノード鍵ID設定することで見出される 
                                            DevExpress.XtraTreeList.Nodes.TreeListNode selectedNodeの= treeList.FindNodeByKeyID(nodeData.Id)を、
                                             IF(!selectedNodeの= NULL 
                                            {
                                                // ノードに削除
                                                この.treeList2.Nodes.Remove(selectedNodeのを)。
                                            }
                                            #endregionは
                                            // 選択された行全体無効 
                                            treeList.OptionsSelection.EnableAppearanceFocusedRow = 偽を
                                        }
                                        キャッチ(例外の例)
                                        {
                                            ICSharpCode.Core.LoggingService <Da​​taTreeListHelper> .ERROR(" 実験データ例外を削除します。" + ex.Message、EX)。
                                            DevExpress.XtraEditors.XtraMessageBox.Show(" 実験データ例外の削除:" + ex.Message、" タイトル" 、MessageBoxButtons.OK、MessageBoxIcon.Errorを)。
                                        }
                                    }
                                }。
                                ctxMenu.MenuItems.Add(mnuDelete)。
                                ctxMenu.Show(treeList、新しいSystem.Drawing.Point(EX、EY));
                            }
                            #endregion 
                            返します
                    }
                }
                treeList.OptionsSelection.EnableAppearanceFocusedRow = falseに ;                                 // 行全体を選択して無効
            }
        }

 

具体的なコメントはコードを参照してください。

おすすめ

転載: www.cnblogs.com/badaoliumangqizhi/p/11672205.html