2012-07-01 6 views
0

트리 뷰에 DB의 일부 데이터가로드됩니다. 선택한 콤보 상자 항목에 대한 트리보기를 필터링하고 싶습니다. 아무도 이걸하는 방법을 보여줘?
String s = comboBox1.SelectedItem.ToString();
이 사용해야합니다 :콤보 상자에서 선택된 항목 트리보기

public SelectorDataTreeView() 
     {    
      InitializeComponent(); 

      button1.FlatStyle = FlatStyle.Flat; 

      comboBox1.Items.Add("HP"); 
      comboBox1.Items.Add("DELL"); 
      comboBox1.Items.Add("Cam"); 

     } 






     private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      String s = comboBox1.SelectedItem.ToString(); 
      ExpandAll(MyTreeView.Nodes); 
     } 




     //TreeKey Finder 
     private TreeNode[] FindNode(String searchKey) 
     { 

      return MyTreeView.Nodes.Find(searchKey, true); 

     } 
} 
+0

처럼 사용할 필요가 s 난 후에 당신이 그것의 일부가 트 리뷰를 필터링하거나 확장 하시겠습니까? 필터의 용도는 무엇입니까? –

+0

@ mahdi tahsildari : 선택한 콤보 상자 항목의 트리보기를 필터링하고 싶습니다. 고맙습니다. – linguini

답변

1
private void Form4_Load(object sender, EventArgs e) 
    { 
     treeView1.Nodes.Add("LaptopsNodeKey", "Laptop"); 
     treeView1.Nodes.Add("CellPhonesNodeKey", "Phones"); 
     treeView1.Nodes.Find("LaptopsNodeKey", true)[0].Nodes.Add("DellTM", "Dell"); 
     treeView1.Nodes.Find("LaptopsNodeKey", true)[0].Nodes.Add("SonyTM", "Sony"); 
     treeView1.Nodes.Find("CellPhonesNodeKey", true)[0].Nodes.Add("HTCTM", "HTC"); 
     treeView1.Nodes.Find("CellPhonesNodeKey", true)[0].Nodes.Add("NokiaTM", "Nokia"); 

     comboBox1.Items.Add("LaptopsNodeKey"); 
     comboBox1.Items.Add("CellPhonesNodeKey"); 

     comboBox2.Items.Add("Laptop"); 
     comboBox2.Items.Add("Phones"); 
    } 

    //This works because you Loaded ComboBox1 with Name property of Nodes 
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     treeView1.CollapseAll(); 
     treeView1.SelectedNode = treeView1.Nodes.Find(comboBox1.Text, true)[0]; 
     treeView1.SelectedNode.Expand(); 
    } 

    //This doesn't work, because you Loaded ComboBox2 with Text property of Nodes 
    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     treeView1.CollapseAll(); 
     treeView1.SelectedNode = treeView1.Nodes.Find(comboBox1.Text, true)[0]; 
     treeView1.SelectedNode.Expand(); 
    } 
+0

이 작업이 수행되지 않습니다. 콤보 상자에서 수행하고 싶습니다. – linguini

+0

더 명확하게하기 위해 코드를 붙여 넣으십시오. –

+0

전체 코드를 업데이트했습니다. – linguini

1

아하, 이것은 당신의 잘못입니다
String s = comboBox1.Text을;
작동 중입니다.
또한 Name 속성이 아닌 Text 속성을 검색해야합니다.
당신이
treeView1.SelectedNode = treeView1.Nodes.Find("WantedNodesName", true)[0]; treeView1.SelectedNode.Expand();

+0

's'을 가져 왔지만 사용하지 마십시오 –

+0

코드에 대한 자세한 설명을 제공해 주시겠습니까? 검색 키 트리 방법을 이해하는 데 문제가 있습니다. – linguini

+0

확인. 검색 방법은 노드의'Name' 속성을 기반으로합니다. 예를 들어 "Laptops"노드가있는 트리가 있고이 노드 아래에 "Name"노드가 있습니다 : "Dell"및 "Text ': "Dell Company Laptops", "Dell Company Laptops"를 검색하면 대답을 얻을 수 없지만 "Dell"을 검색하면 제대로 작동합니다. 내가 알 겠어? –

관련 문제