C# - kilka pytan odnośnie programowania

Witam. Mam kilka pytań odnośnie programowania w C#. Dla znawcy tematu pewnie to pestka, ale mi jak najbardziej przyda się jakaś podpowiedź.

 

  1. Załóżmy, że mam taki sobie program (http://i58.tinypic.com/opzjhx.jpg):

kolor czarny - menu, kolor zielony - pasek stanu, kolor błękitny - “główne” menu.

Domyślnie po uruchomieniu jest w oknie głównym są kontrolki, teksty itd.t. Jak zrobić tak, by po naciśnięciu przycisków menu one się schowały, a pokazały inne (samo chowanie, click trigger to da się zrobić łatwo :))

 

  1. Podobna sytuacja. program w pliku Oknoglowne.cs. Ok. Klikam manu i wyskakuje mi nowy formularz, ale uruchamiany z pliku załóżmy dodajobiekt.cs. Da się tak zrobić? Że każde nowe okno jest jak gdyby w innym pliku? Znalazłem coś takiego: http://www.centrumxp.pl/dotNet/296,05-Tworzenie-solution-i-nowych-projektow.aspx, lecz nie jestem do końca pewien czy to ta k się nazywa.

 

Dzięki za pomoc.

 

Pozdrawiam

I właśnie dlatego języki pokroju C# nie są dobre do nauki programowania…

Dla każdego zdarzenia zawartość okna musisz narysować od nowa, chyba że w menu będzie do wyboru dwa zdarzenia które gdzieś upchniesz podczas projektowania formularza, ale to jest bez sensu. Zacznij od hello world! bez użycia graficznego edytora formularzy…

Nie robię tego przeciągając kontrolki. Wszystko jest pisane z palca :stuck_out_tongue: Idzie nawet nawet. Ty;ko w głowie mam pomysły, a nie wiem jakim sposobem mogę je zrealizować. Przykładowo mam tablegrid i chciałbym uzyskać coś w stylu metro. I tak dodaję “panel” do kolejno do wiersza 0, kolumna 0, potem wiersz 0, kolumna 1 (by były obok). I na dole chciałbym uzyskać (kolumna 0, wiersz 1) panel o długości tych dwóch nad nim. Niestety te na gorze przesuwają się do boku i nad nim mam jeden panel (0,0), który notabene się rozciąga do długości tego z dołu :P. Ale z czasem to opanuje :slight_smile:

 

Niemniej jednak fajni by było, gdyby program uruchamiał siei składał się z kilku jakby “podprogramów” -> każda opcja menu  zapisana jako inny plik .cs, gdzie po kliknięciu na dana opocję “odpala” się innyplik .cs :stuck_out_tongue: To by troszkę ułatwiło prace, bo wszystko mógłbym napisać oddzielnie.

nie jestem guru aplikacji desktopowych, ale w .Necie masz WPF - jest to biblioteka GUI wraz z wsparciem dla graficznego i znacznikowego (podobnego do HTML) języka. Znacznie ułatwia robienie czegoś takiego jak masz na myśli (grid jak kafelki)

np.: http://mahapps.com/controls/tile.html

 

“Niemniej jednak fajni by było, gdyby program uruchamiał siei składał się z kilku jakby “podprogramów” -> każda opcja menu  zapisana jako inny plik .cs, gdzie po kliknięciu na dana opocję “odpala” się innyplik .cs :stuck_out_tongue: To by troszkę ułatwiło prace, bo wszystko mógłbym napisać oddzielnie.”

Jak najbardziej jest to do zrobienia.

wypełnienie, grida musi być kolekcja oparta o jakis interface, w której każdy element jest obiektem innej klasy dziedziczącej po tym interface.

Można nawet pokusić się o automatyczne zmieranie tych klas i tworzenie obiektów za pomocą Reflection. Jest to już jednak bardziej skomplikowane.

  1. Dla każdego przycisku tworzysz panel.

  2. Panele układaszna na głownej formie w stos (jeden na drugim).

  3. Po naciśnięciu przycisku wywołujsz dla odpowiedniego panela metodę _ BringToFront _.

O jakieś na pozór przynajmniej dość proste rozwiązanie :slight_smile: Dzięki.