2010-11-08 5 views
2

Я создал сервер/клиентское приложение, и в моем клиентском приложении я инициализировал мое соединение в файле Program.cs, в котором я также инициализировал приложение Form , Как я могу, скажем, нажать на кнопку в моей форме и вызвать функцию в моем файле Program.cs?Доступ к функции в Program.cs, которая инициализирует мою Form1 из моей Form1

ответ

2

Ввод материала в Program.cs не рекомендуется, вы должны создавать новые файлы.

Если вы хотите поместить его в Program.cs, вы просто добавили туда метод, вам нужно сделать его static, так как класс Program - static.

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

private void button1_Click(object sender, EventArgs e) 
{ 
    Program.YourMethod(); 
} 

Тот же принцип применяется, если вы поместите код в другой файл. Создайте пространство имен и класс в этом файле.

Если вы сделаете класс/метод нестационарным (как вы обычно это делаете), вам также нужно создать экземпляр своего класса.

private void button1_Click(object sender, EventArgs e) 
{ 
    var yourObject = new YourClass(); 
    yourObject.YourMethod(); 
} 
+0

благодарит за отзыв. Думаю, я добавил функции вызова сервера в program.cs. Должен ли я вставлять код сервера в код формы? – Alex

+1

@Badescu Alexandru, Вероятно, вы должны создать класс под названием «Сервер» (в отдельном файле) и добавить всю свою логику сервера в этот класс. Затем вы создаете экземпляр сервера в форме, примерно так: «Сервер myServer = новый сервер (« имя хоста »); –

2

Предполагая, что функция является общедоступной и статической, например.

public static void Foo() 
{ 
    MessageBox.Show("foo"); 
} 

Просто есть такой код в случае нажатия кнопки:

Program.Foo(); 
2

Если вы сделаете статический метод, вы можете просто назвать это так:

class Program 
{ 
    // ... 

    public static void SendMessage(object obj) 
    { 
     // Send your message. 
    } 
} 

Затем вызовите метод :

Program.SendMessage(whatToSend); 
Смежные вопросы