2017-05-02 46 views
1

我有兩種形式。主窗體包含一個treeview。在顯示第二個表單之後,樹視圖失去了重點。沒關係,但我想在第二個窗體關閉時激活樹視圖。再次激活treeview

Form1.cs的

namespace ex 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      using (Form2 form2 = new Form2(this)) 
      { 
       form2.StartPosition = FormStartPosition.CenterParent; 
       form2.ShowDialog(); 
      } 
     } 

     internal void example() 
     { 
      treeView1.SelectedNode = treeView1.Nodes[1]; 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      TreeNode node = new TreeNode("aaaa"); 
      treeView1.Nodes.Add(node); 
      node = new TreeNode("bbbb"); 
      treeView1.Nodes.Add(node); 
      node = new TreeNode("cccc"); 
      treeView1.Nodes.Add(node); 

     } 
    } 
} 

Form2.cs

namespace ex 
{ 
    public partial class Form2 : Form 
    { 
     Form1 form1; 

     public Form2(Form1 form1) 
     { 
      InitializeComponent(); 

      this.form1 = form1; 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      this.Close(); 
      form1.example(); 

      //not working 
      form1.treeView1.Focus(); 
      form1.treeView1.Select(); 
     } 
    } 
} 

回答

0

窗體2真的不應該用這樣Form1的親密。嘗試扭轉你的代碼是這樣的:

private void button1_Click(object sender, EventArgs e) 
{ 
    using (Form2 form2 = new Form2(this)) 
    { 
    if (form2.ShowDialog(this) == DialogResult.OK) { 
     treeView1.Select(); 
     example(); 
    } 
    } 
} 

如果窗體2應該提供的任何信息添加到您的TreeView控件,你會建立財產Form2上,並從相同的代碼塊中訪問它。

+0

謝謝!有用。 – kovak