2016-03-14 89 views
1

我想獲得一個ListBox是靜態的,或者找到一種方法來在靜態方法中使用非靜態列表框。我有類似創建靜態列表框,或者在靜態方法中使用非靜態列表框? C#

private void static Add(string msg) 
{ 
    listBox1.Items.Add(msg) 
} 

和listBox1在上面定義爲非靜態。但是,當我將上面定義的ListBox更改爲靜態時,它會導致更多錯誤,從而無法解決問題。是否有可能創建一個靜態列表框,或解決方法(無需創建第二個類)?

回答

1

你爲什麼想用這種靜態方法我不明白這一點,但我意識到,如果你改變你的方法是這樣,它應該工作(當然發送列表框的方法是必要的):

private static void send(ListBox listbox1, string msg) 
    { 
     listbox1.Items.Add(msg); 
    } 

編輯:

我發現另一種方法是:

在你Form1.Designer.cs(添加在底部):

static System.Windows.Forms.ListBox listBox; 

然後在Form1.cs的構造函數:

 public Form1() 
    { 
     InitializeComponent(); 
     Form1.listBox = this.listBox1; 
    } 

現在可以正確地使用你的方法 - 我是這麼認爲的。

+0

我已經試過了。它不工作,因爲我傳入的ListBox不是靜態的(同樣的問題發生)。 – FyreeW

+0

可能您應該添加您用於嘗試此方法的代碼並解釋您得到的錯誤是什麼 – Steve