Witam,
Mam problem z odwołaniem się z jedenej formy do formy2, a raczej metody formy2.
Sprawa wygląda tak, że piszę komunikator, i docelowo każda rozmowa ma być w nowym okienku. Mam zrobione już że wyświetlanie jest w nowym okienku(Form2) i kiedy wiadomość wysyłana była w Form1 wszystko ładnie działało, ale należało przenieść i wysyłanie do Form2, bo nikt w jednym oknie nie będzie pisał a w drugim czytał....
Pomysły, a raczej rozwiązania jakie widziałem były dwa: odwołanie się z Form2(okienka rozmowy) do metody wysyłania z form1 i przekazaniu w parametrze string wiadomość, albo przenieść całą metodę do form2 i odwołać się tylko do strumienia. Jednak obie metody u mnie zakończyły się tym samym błędem i niepowodzeniem.
Pojawia mi się wyjątek: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu
Próbowałem i z invoke tutaj ale jakoś nie pomogło,
A teraz czas na kod(przedstawiam odwołanie się z form2 do metody form1 z wykorzystaniem invoke, ale z niego nie korzysta, może tu błąd mój?):
Form2
private delegate void SendMessageBack(string wiadomos);
private void SendMessage(string wiadomos)
{
if (this.richTextBox_Wysylanie.InvokeRequired)
{
MessageBox.Show(" invoke");
SendMessageBack f = new SendMessageBack(SendMessage);
this.Invoke(f, new object[] { wiadomos });
}
else
{
MessageBox.Show("nie invoke");
Form1 formaa = new Form1();
formaa.wysylanie(wiadomos);
}
}
private void buttonWyslij_Click(object sender, EventArgs e)
{
string tekst;
tekst = richTextBox_Wysylanie.Text;
SendMessage(tekst);
}
Form1
public void wysylanie(string wiadyw)
{
int gh=9;
string tek;
string tekstwysylany;
string tekstwysylany_2;
tek = Convert.ToString(gh);
tekstwysylany = tek + "#" + log + "#";
tekstwysylany += wiadyw;
tekstwysylany_2 = richTextBox_Wysylanie.Text;
w.Write(tekstwysylany); // na tej lini wyrzuca wyjątek
}
w.write jest zadeklarowane w klasie Form1
public BinaryWriter w = null;
i przy nawiązaniu połączenia z serwerem
NetworkStream stream = klient.GetStream();
w = new BinaryWriter(stream);
Proszę o pomoc, co jest nie tak z tym odwołaniem, jak to poprawić i w czym jest problem. Dzięki