Wywoływanie metody z innego pliku

Wywoływanie metody z innego pliku
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
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:

Kopiuj
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:

Kopiuj
public: void Test()
{
	MessageBox::Show("Test", "Form1", MessageBoxButtons::OK, MessageBoxIcon::Warning);
}
Azarien
  • Rejestracja: dni
  • Ostatnio: dni
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.

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.