2015-09-08 2 views
-3

Мне нужно добавить элемент в списокBox1 из статической функции, но он не работает из-за статического ^^; можно ли вызывать формы окон (например, listBox1) из статической функции в C#?C# call windows form from static function

то, что я хочу сделать:

public static void ListBoxTest() 
{ 
    listBox1.Items.Add("something"); 
} 
+5

возможно дубликат [Реферирование нестатические полей из статических функций и наоборот невозможно?] (Http://stackoverflow.com/questions/10251599/referencing-non-static-fields-from-static-functions и-наоборот-невозможно) –

ответ

1

Вы не можете получить доступ к не-статические методы внутри статического метода без создания экземпляра, иначе вы можете использовать что-то вроде следующего, изменяя сигнатуру функции:

public static void ListBoxTest(ListBox listBox1) 
{ 
    listBox1.Items.Add("something"); 
} 

и вызов функции, как:

ListBoxTest(listBox1); 
0

Вы можете попробовать это;

private static Form1 _instance; 

public Form1() 
{ 
    InitializeComponent(); 
    _instance = this; 
} 

public static void ListBoxTest() 
{ 
    _instance.listBox1.Items.Add("something"); 
}