Wywoływanie metody z innego pliku

0

Więc tak, w projekcie windows forms mam 2 pliki: Form1.h i Form2.h. Teraz chcę się z pliku Form2 wywołać metodę z pliku Form1.h i za bardzo nie wiem jak to zrobić. Ciągle kompilator wywala mi następujący błąd:

error C2039: 'Test' : is not a member of 'System::Windows::Forms::Form'
1>          c:\program files\reference assemblies\microsoft\framework\.netframework\v4.0\system.windows.forms.dll : see declaration of 'System::Windows::Forms::Form'

Funkcja Test wygląda następująco:

public: void Test()
{
	MessageBox::Show("Test", "Form1", MessageBoxButtons::OK, MessageBoxIcon::Warning);
}
0

byyło, byyło, byyło…

w pliku form1.h dodaj #include "Form2.h" tuż poniżej #pragma once.
To ci da dostęp do metod statycznych, za pomocą Form2::Test(). Do niestatycznych potrzebujesz instancji drugiego okna, ale gdzie ją tworzysz i masz to już ty wiesz.

i żeby nie było: include nie działa w obie strony, tj. nie możesz tego jednocześnie zrobić w drugim pliku, bo zapętlasz zależności. w takiej sytuacji (jeśli Form2 musi mieć też dostęp do Form1) musisz przekazać obiekt formy1 np. do konstruktora form2.

0

Tak, zapomniałem wspomnieć, że obiekt form1 mam już przekazany do form2 i za pomocą tego obiektu staram się odwołać do metody Test() i mimo to dostaje błąd, który jest w pierwszym poście. Metoda Test nie może być statyczna niestety, ponieważ chcę się w niej odwoływać do pól Form1.

1 użytkowników online, w tym zalogowanych: 0, gości: 1