Scalanie projektów windows form

0

Witam wszystkich!

Na zajęciach z programowania w C# uczono nas programowania aplikacji okienkowych... Polegało to mniej więcej na tym, że tworzyliśmy nowy projekt "Windows Form Application", z paska narzędzi po prawej stronie otwieraliśmy "Program.cs" i to w nim wszystko tworzyliśmy. Mam w nim stworzony cały program ankiety, wszystko jest w porządku, działa bez zarzutu, tak długo, jak długo znajduje się jedynie w tym właśnie miejscu nazywanym "Program.cs". Natomiast chciałbym go rozbudować, przerzucić na różnego typu formy, podzielić pomiędzy okna itd itp. I tutaj pojawia się problem początkującego - czy da się scalić takie projekty?

Tłumaczę po krótce moje przewidywania na to:
Posiadam obecnie dwa projekty - jeden napisany jak powyżej właśnie w tym środowisku, w części którą nazywa się "Program.cs". Drugi projekt, jest stworzony na 4 "Form.cs" oczywiście z moim prywatnym nazewnictwem. Czy istnieje możliwość by to scalić? Tworząc nowe okienko, mamy do wybou 4 pliki (załóżmy, że nazywa się Form1) i są to:
Form1.cs
Form1.Designer.cs
Form1.rsx

W które miejsce powinienem to wkleić? I czy ktoś może mi przytoczyć objaśnienie, czym różni się wykorzystywane w "Program.cs" public class MainForm:Form od public partial class Form1 : Form co pojawia się w tworzonym pliku "Form.cs"?

Na ogół sam dotarłem do momentu, że wkleiłem cały projekt (oprócz deklaracji używanych środowisk przy pomocy "using...") i jedyne czego się czepiało to "MainForm is a method but is used like a type" - to był jedyny błąd. Jednakże wszystko powinno być dobrze, przy czym nie rozumiem różnicy pomiędzy public class a partial class i nie wiem jak to naprawić. Żadne ze znalezionych przeze mnie objaśnień na forach jak to naprawić nic zbytnio nie wnosi do mojego problemu. Pomożecie? W razie potrzeby udostępnię oba projekty i może ktoś coś wymyśli (szkoda wklejać tutaj ok. 900 linijek kodu do przeglądania).

0

partial oznacza, że definicja klasy może być rozbita na wiele plików. W przypadku Form1 są to Form1.Designer.cs - jak łatwo się domyślić tam są definicje i ustawienia wszystkich kontrolek i elementów, które tworzysz w designerze oraz Form1.cs - tam jest to wszystko, co implementuje programista np. metody obsługi zdarzeń przycisków. Taki podział klasy formatki na pliki jest wygodny, ale oczywiście nieobowiązkowy, i to jest to, co zrobiliście tworząc bez użycia designera formatkę MainForm w pliku Program.cs. (Co jest strasznie brzydkie swoją drogą, w Program.cs powinna być klasa Program i żadna inna.) Ogólnie nieużywanie designera jest masochizmem.

No, ale ogólnie wszystko to da się połączyć - ja bym do projektu, w którym mam normalne formatki utworzył nową o nazwie MainForm, wyklikał w designerze wszystkie elementy, a potem przeniósł swój autorski kod do MainForm.cs.

0

partial to hack który Microsoft wymyślił aby ukryć przed programistą kod generowany przez designer WinForms w osobnym pliku (z końcówką .Designer.cs).
Jeszcze nie widziałem powodu by używać partial w ręcznie pisanym kodzie.

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