Нужно изменять значение textbox из другого класса, но никак не могу это сделать. Поискав в гугле понял, что это можно сделать с помощью событий или изменив модификатор доступа textbox в свойствах на public, а затем создав в классе объект формы и через него изменять значение textbox, что у меня не вышло. Помогите пожалуйста решить проблему.
Вариант 1:
public class ClientObject
{
public delegate void MethodChatLog(string message);
public event MethodChatLog writeInChatLog;
...
public void Process()
{
Form1 form1 = new Form1();
try
{
Stream = client.GetStream();
// Получаем имя пользователя
userName = GetMessage();
string message = userName + " вошел в чат.";
// Рассылаем сообщение о входе в чат всем подключенным пользователям
server.BroadcastMessage(message, Id);
writeInChatLog(message); // здесь сообщение должно передаваться в textbox формы, но увы
...
public partial class Form1 : Form
{
ClientObject clientObject = new ClientObject();
static ServerObject server;
static Thread listenerThread;
public Form1()
{
InitializeComponent();
try
{
server = new ServerObject();
listenerThread = new Thread(new ThreadStart(server.Listen));
listenerThread.Start(); // старт потока
}
catch (Exception exc)
{
server.Disconnect();
}
clientObject.writeInChatLog += MessageChatLog;
}
public void MessageChatLog(string message)
{
chatLogTB.Text += message + "\r\n";
}
}
Вариант 2:
...
public void Process()
{
Form1 form1 = new Form1();
try
{
Stream = client.GetStream();
// Получаем имя пользователя
userName = GetMessage();
string message = userName + " вошел в чат.";
server.BroadcastMessage(message, Id);
form1.chatLogTB.Text += message; // ничего не изменяет
...
Также делал модификатор textbox приватным и изменял значение textbox через публичное свойство, но это ни к чему не привело.