2013-05-11 5 views
5

मैं एक वीबी.नेट 2010 परियोजना पर काम कर रहा हूं जिसमें एक वृक्षदृश्य नियंत्रण शामिल है। पहली बात यह है कि मैं यह पता लगाने की कोशिश कर रहा हूं कि वर्तमान में चयनित नोड के ठीक बाद एक नया नोड डालने का तरीका है, और उसके बाद उस नए डाले गए नोड को चयनित नोड बनाएं। मैं नया नोड कोई समस्या नहीं डाल सकता, लेकिन मैं यह नहीं समझ सकता कि इसे "चयनित" नोड कैसे बनाया जाए। नीचे दी गई टिप्पणी पंक्ति वह हिस्सा है जिसे मैं लटका रहा हूं।वीबी.नेट ट्री व्यू - गतिशील रूप से डालने या स्थानांतरित होने के बाद नोड का चयन करना?

Private Sub AddNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddNode.Click 

    If Not treeview1.SelectedNode Is Nothing Then 
     treeview1.Nodes.Insert(treeview1.SelectedNode.Index + 1, TextBox1.Text) 
     treeview.SelectedNode = treeview1.Nodes.Item(treeview1.SelectedNode.Index + 1) ' <-- I thought this would work, but it doesn't 
    End If 

End Sub 

दूसरा, मैं एक चयनित नोड अप (अन्य नोड्स के संबंध में) को स्थानांतरित करने के लिए नीचे दिए गए कोड का उपयोग कर रहा हूं। यह ठीक काम करता है, लेकिन ऊपर की समस्या के समान, मैं यह नहीं समझ सकता कि उस नोड को "चयनित" नोड के रूप में स्थानांतरित करने के बाद कैसे रखा जाए।

Private Sub NodeUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NodeUp.Click 

    Dim CurrentIndex As Integer = treeview1.SelectedNode.Index 
    Dim CurrentNode As TreeNode = treeview1.SelectedNode 
    treeview1.SelectedNode.Remove() 
    treeview1.Nodes.Insert(CurrentIndex - 1, CurrentNode) 

End Sub 

यह सरल हो गया है, लेकिन मैं कैसे पता लगाने की कोशिश मेरी दिमाग wracking रहा हूँ, इसलिए मैं यहाँ अंतर्दृष्टि का एक छोटा सा की सराहना करेंगे।

धन्यवाद!

उत्तर

4
एक TreeView में चयनित नोड की स्थापना आप TreeNode आप चयन करना चाहते करने के लिए TreeView.SelectedNode फोन के लिए

अब जब हम यह है कि आपके उदाहरण के लिए नीचे स्थापित कर लिया है:

जब आप अधिभार आप (पूर्णांक, स्ट्रिंग) का उपयोग कर TreeView.Nodes.Insert फोन आप वास्तव में एक TreeNode वस्तु आपको लौटा मिलता है। तो अगर आप

Private Sub AddNode_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddNode.Click 

    If Not treeview1.SelectedNode Is Nothing Then 
     Dim NewNode as TreeNode = treeview1.Nodes.Insert(treeview1.SelectedNode.Index + 1, TextBox1.Text) 
     treeview.SelectedNode = NewNode 
    End If 

End Sub 

करने के लिए अपने नमूना बदल तो यह नोड आपने अभी बनाया चयन करना चाहिए।

आपका दूसरे उदाहरण सिर्फ एक लाइन से जोड़ रहे है की जरूरत है:

Private Sub NodeUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NodeUp.Click 

    Dim CurrentIndex As Integer = treeview1.SelectedNode.Index 
    Dim CurrentNode As TreeNode = treeview1.SelectedNode 
    treeview1.SelectedNode.Remove() 
    treeview1.Nodes.Insert(CurrentIndex - 1, CurrentNode) 
    treeview1.SelectedNode = CurrentNode 

End Sub 

यह सब इस समय मस्तिष्क संकलक से काम कर रहा है के रूप में मैं यह परीक्षण करने के लिए दृश्य स्टूडियो के लिए पहुँच नहीं है, इसलिए कृपया यदि आपको कोई समस्या है, तो मुझे बतायें।

+0

धन्यवाद एड्रियन, दोनों समाधान पूरी तरह से काम करते हैं! :) मैं अपने दूसरे उदाहरण के जवाब को देखने के बाद अब थोड़े मूर्ख महसूस कर रहा हूं ... प्रमुख "दोह!" पल, लॉल। – NotQuiteThereYet

+0

@NotQuiteThereYet यह कोई समस्या नहीं है: डी हम सीखते हैं - हम गलतियां करते हैं, और देखते हैं कि हम कहां गलत हो गए। मेरा विश्वास करो, मुझे इससे पहले की गलती की गलती हुई है। – Adrian

संबंधित मुद्दे