Witam
Nie będę wklejał kodu, załączam projekt (VS2010EE) szkielet aplikacji. Proszę powiedzieć dlaczego zdarzenie TsmiClick nie odpala się.
Nie mam już pomysłów.
Witam
Nie będę wklejał kodu, załączam projekt (VS2010EE) szkielet aplikacji. Proszę powiedzieć dlaczego zdarzenie TsmiClick nie odpala się.
Nie mam już pomysłów.
A co się ma odpalić, skoro nie ma podpiętych żadnych słuchaczy?
Dokładniej mówiąc: podpinasz się, ale nie pod właściwą instancję obiektu.
W MainViewControl.cs
masz MainForm.Instance.TsmiClick+=new EventHandler(Instance_TsmiClick);
, czyli podpięcie pod zdarzenie w obiekcie singletona, który de facto tworzony jest właśnie w tym miejscu, bo tutaj po raz pierwszy go używasz.
W Program.cs
masz Application.Run(new MainForm());
, a więc tworzysz obiekt klasy MainForm
, który ma niewiele wspólnego z obiektem, który jest tworzony przez singletona.
Gdybyś zgodnie z zaleceniem wzorca singleton dodał prywatny konstruktor to wychwyciłbyś ten błąd na etapie kompilacji.
somekind napisał(a)
A co się ma odpalić, skoro nie ma podpiętych żadnych słuchaczy?
Pewnie ten projekt wydaje Ci się znajomy :) Zbudowałem na jego bazie całkiem sporą aplikację i tam wszystko działa.
Teraz chciałem zachować szkielet dla przyszłych programów, więc zostawiłem tylko to co uznałem za niezbędne.
Rev napisał(a)
Gdybyś zgodnie z zaleceniem wzorca singleton dodał prywatny konstruktor to wychwyciłbyś ten błąd na etapie kompilacji.
Tak, tu pies był pogrzebany.
W działającej aplikacji mam Application.Run(MainForm.Instance);
Szybko sobie z tym poradziłeś.
Przy okazji chciałbym się pochwalić:
http://www.gavel.user.icpnet.pl/mycomiccollector/
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.