Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 16 wrz 2024, o 20:47


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
Autor Wiadomość
PostNapisane: 28 gru 2013, o 17:41 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

W sumie to taki ultra mikro poradnik przez kolegę jednego z forum zainspirowany
bo jak widzę proste sprawy wiele kłopotów potrafią czynić

Sprawa jest banalnie prosta mianowicie chodzi o to ze w naszym programie
chcemy tylko raz otworzyć inne okno ... i do puki bedzie ono otwarte
nie da się otworzyć ....

Dlaczego ano bo jak sobie damy butona otwierającego okno to ile razy klikniemy tyle się
otworzy :P

No to jedziemy :

Tworzymy nowy projekt nazywamy sobie np One_windows_only
dodajemy na formie1 buton -> Otwórz okno
dodajemy pictureBox i wrzucamy jakiś tam obrazek

o takie coś np:

Obrazek

teraz dodajemy 2 nowe Winows form :P
jedną nazywamy noweOkno , a drugą inneOkno

Obrazek

otwieramy każdą z nich i umieszczamy przycisk ZAMKNIJ:

Obrazek

teraz klikamy na przycisk Zamknij i wstawiamy w funkcji button_Click linijkę:

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


pozwoli nam to przyciskiem zamknąć okienko ...

i wracamy do naszego 1 okna z pictureboxem gdzie klikamy na przycisku otwórz okno
i w funkcji button_Click wstawiamy kod:

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


kod jest prosty wiec nie będę go objaśniał , ale to nie wszystko musimy sobie przed naszym przyciskiem zdefiniować licznik:) co robimy taką linijką :

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



analogicznie postępujemy z pictureBoxem na który klikamy i wstawiamy kod

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



juz nie definiujemy licznika bo jest :)

a cały kod powinien wyglądać tak:

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



od tej pory kliknięcie na klawisz czy też pictureBox spowoduje otwarcie przypisanego mu okna
ale każde następne klikniecie zamiast otworzyć okienko kolejne tera tylko przeniesie nas na juz otwarte które zamigota i usłyszymy dźwięk :) Rozwiązanie zaproponowane przez kol. developer85 tu opisane przypadło mi do gustu gdyż
zmienna licznik przydaje się też w różnych innych miejscach programu :)

to wszystko , flagi okienek to naprawdę prosta sprawa ...

a tu cały nasz programik żebyście sobie sami sprawdzili jak działa ...
dodajcie sobie nowe okienko i butonik je otwierający i zobaczcie jak działa bez naszej wstaweczki:)


Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 18:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 13 paź 2011
Posty: 581
Pomógł: 17

Dzięki śliczne ;-)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

proszę bardzo :P

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:20 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 wrz 2013
Posty: 58
Zbananowany użytkownik

Pomógł: 10

A po co ten licznik? nie wystarczy tak:

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:28 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

mozna jeszcze krócej , bo przecież tyle wersji ilu programistów prawda :)


Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:33 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 wrz 2013
Posty: 58
Zbananowany użytkownik

Pomógł: 10

OK, myślałem że może jakiś szerszy zamysł w tym był :)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 19:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

Cytuj:
OK, myślałem że może jakiś szerszy zamysł w tym był


W kilku miejscach używam jeszcze zmiennej .. do innych celów i nie chciało mi się tworzyć nowej ...
a tu akurat taki przykład tylko .... bez znaczenia

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 20:03 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 maja 2012
Posty: 296
Lokalizacja: Chebzie Dolne
Zbananowany użytkownik

Pomógł: 6

Heh jak się bawić to też tak można:) po kliknięciu na button "Open window" otwiera się nowa forma a button się dezaktywuje :P

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


a dla formy drugiej w zdarzeniu Form_closing:
Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


To tak w 3 minuty.:)


Autor postu otrzymał pochwałę

_________________
Inspekcja TV kanalizacji
Programowanie



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 28 gru 2013, o 23:21 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Macam się na razie z C# więc nie jestem w stanie podać działającego przykładu, ale podane rozwiązania sprowadzają się do otwarcia okna modalnego, które nie pozwala przenieść sterowania poza takie okno w ramach aplikacji. Do tej pory dłubałem nieco w MiniGUI ( GUI dla Harbour - kompilatora Clipper'a ) gdzie do dyspozycji były różne rodzaje okien i możliwość sprawdzenia po nazwie/identyfikatorze czy dane okno jest już powołane. Mi by się marzyło takie rozwiązanie, które pozwala otworzyć kilka okien różnymi kontrolkami ale bez dubli, tzn, że kontrolki w oknie głównym są zawsze aktywne, ale w momencie jej przyciśnięcia wykonuje się sprawdzenie czy dane okno jest już otwarte. Jeżeli nie to otwiera, jeżeli tak to robi na nim focusa. Okno nie powinno blokować otwierania innych okien innymi kontrolkami. Czy można liczyć na taki przykład w C#?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 00:35 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 23 wrz 2013
Posty: 58
Zbananowany użytkownik

Pomógł: 10

Cytuj:
Macam się na razie z C# więc nie jestem w stanie podać działającego przykładu, ale podane rozwiązania sprowadzają się do otwarcia okna modalnego, które nie pozwala przenieść sterowania poza takie okno w ramach aplikacji.


Pozwolę sobie odpowiedzieć na to pytanie delikatnie modyfikując kod kolegi SunRiver'a
Wydaje mi się że kod jest na tyle prosty że niema potrzeby nic tłumaczyć, a więc...

Składnia: [ Pobierz ] [ Ukryj ]
język csharp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Oraz projekt w załączniku


Autor postu otrzymał pochwałę

Załączniki:

Aby zobaczyć załączniki musisz się zalogować. Tylko zalogowani użytkownicy mogą oglądać i pobierać załączniki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 gru 2013, o 18:03 
Offline
Użytkownik

Dołączył(a): 16 maja 2012
Posty: 349
Lokalizacja: Legnica
Zbananowany użytkownik

Pomógł: 23

Jakże to proste, jak się na to patrzy, a szczególnie jak się doczyta o OpenForms. Jeszcze dużo czytania przede mną. Dzięki :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 25 lut 2014, o 13:50 
Offline
Nowy
Avatar użytkownika

Dołączył(a): 24 lut 2014
Posty: 16
Pomógł: 1

SunRiver napisał(a):
(new noweOkno()).ShowDialog(this);


no to się nazywa optymalizacja kolego stosowałam podobne rozwiązanie do
pokazanego przez kolegę (przez kulturę nie napiszę tego nicku) ale to jest dużo lepsze wyjście
brawo . Widzę, że kolega z niejednego kompilatora jadł :)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO