シーン
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により、すべてのノードのリストを取得する リスト<DataTreeNode>データソース= treeList.DataSource AS一覧<DataTreeNode> ; IF(!のDataSource = ヌル) { // 最初の属性Idのノードの選択されたセット取得 idValue treeList.Selection = [ 0 ]以降.getvalue(" 同上" )。 strIdValue = idValue.ToString(); // 取得し、現在選択されたノードのDataTreeNodeオブジェクト NODEDATA = datasource.Where <DataTreeNode>(P => == p.id strIdValue).FirstOrDefault <DataTreeNode> (); 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 <DataTreeListHelper> .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に ; // 行全体を選択して無効 } }
具体的なコメントはコードを参照してください。