2015-07-20 4 views
0

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

private void addChat(string talk, string user) 
    { 
      console.Items.Add(user + ": " + talk); 
    } 

И побежал отсюда:

static void OnMessage(object sender, PlayerIOClient.Message m) 
    { 
    //Code... 
    string username = users[m.GetInt(0)]; //public static Dictionary<int, string> users = new Dictionary<int, string>(); 
    addChat(m.GetString(1), username); 
    //More code... 
    } 

Однако я тогда получаю эту ошибку:

An object reference is required for the non-static field, method, or property 'NAME.Form1.addChat(string, string)'

Создание этого класса статическими дает эту ошибку:

An object reference is required for the non-static field, method, or property 'NAME.Form1.console'

Как сделать консоль (которая является списком) статичной?

+0

[см] (это http://stackoverflow.com/questions/498400/an- объект-ссылка является требуемым для-для-нестатического-полевого метода-или-свойств-на). ссылка, вероятно, ваша ситуация. –

ответ

0

Не совсем уверен, чего вы пытаетесь достичь. Однако, в общем, вы можете перенести свою статическую логику на свой статический класс и использовать ее в своем классе пользовательского интерфейса.

В вашем статическом классе:

private static string formatChat(string talk, string user) 
{ 
    string.Format("{0} : {1}", user, talk); 
} 

В своем классе UI:

private void addChat(string talk, string use) 
{ 
    console.Items.Add(formatChat(string talk, string use)); 
} 
Смежные вопросы