2012-10-30 34 views
0

我有TreeView對象,我需要當選擇的一個treeviewnodeform在一定位置(node的屬性)被示出,並且當選擇另一node,所述form變化。當沒有選擇節點時,form消失。 Form只包含ListView對象。我需要像Visual Studio中的屬性窗口。如何在Visual Studio中製作類似屬性窗口的窗體?

這個問題我現在有:

Form隨機出現在錯誤的位置,我需要它顯示在一定的位置,另一個form

每個鼠標按下事件後,出現了新的form,但我需要將只有一個form(或舊消失 - 新出現的)

當沒有節點被選中,form不會消失。

我怎樣才能解決這個問題,也許有更好的解決方案嗎?

回答

0

關於 每個鼠標按下事件後,出現了新的形式,但我需要會有 只有一種形式(或舊消失 - 新出現的) 我的解決辦法:

添加到窗體類的靜態變量形式frm; 添加到窗體類的靜態函數

//Create new form if not yet created 
//Or return instance of opened form which can update by new parameters 
public static Form Instance() 
{ 
    if (Form.frm = null) 
     Form.frm = new Form(); 
    return Form.frm; 
} 

那麼只有通過這種靜態函數創建所有的新形式。如果要打開Form的不同實例,請爲此靜態函數創建重載函數。

當然要記住處理靜態Form.frm對象收盤形式

0

嘗試這些代碼顯示您的表單:

private Form2 f2;  

private void button1_Click(object sender, EventArgs e) 
{ 
    if (f2 == null) { 
     f2 = new Form2(); 
     f2.FormClosed += delegate { f2 = null; }; 
     f2.Show(); 
    } 
    else { 
     f2.Activate(); 
    } 
} 
相關問題