Strona główna » Carckowanie » lang csharp » formularze i podstawy programowania obiektowego
formularze i podstawy programowania obiektowego [wiadomość #751] pon, 09 lipiec 2007 04:10 Przejdź do następnej wiadomości
zoltek jest aktualnie niedostępny zoltek
Wiadomości: 6
Dołączył(a): lipiec 2007
Junior Member
Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
komponenty opis poniżej:

Form1
textBox1

Form2
button2

Teraz potrzebuję by po naciśnięciu button2 została odczytana wartość z
TextBox1 i nie wiem jak się za to zabrać.

Mogę na Form1 zrobić statyczną właściwość

private static Form1 frm1;

public static string TextBox1
{
get { return frm1.textBox1.Text; }
}

I na Form2 dobierać się do tego

np. string s = Form1.TextBox1

Ale czy to jest najlepsza metoda?
Re: formularze i podstawy programowania obiektowego [wiadomość #752 (odpowiedź na #751) ] pon, 09 lipiec 2007 04:49 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
Tomasz Muszyński jest aktualnie niedostępny Tomasz Muszyński
Wiadomości: 17
Dołączył(a): kwiecień 2007
Junior Member
zoltek pisze:
> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
> komponenty opis poniżej:

Poczytaj archiwum grupy. Co dziesiąty post jest o tym problemie...

> Mogę na Form1 zrobić statyczną właściwość
>
> private static Form1 frm1;
>
> public static string TextBox1
> {
> get { return frm1.textBox1.Text; }
> }

Static jest tu błędem.

tm
Re: formularze i podstawy programowania obiektowego [wiadomość #753 (odpowiedź na #751) ] pon, 09 lipiec 2007 04:56 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
Kamil Wojcieszek jest aktualnie niedostępny Kamil Wojcieszek
Wiadomości: 7
Dołączył(a): czerwiec 2007
Junior Member
zoltek napisał(a):
> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
> komponenty opis poniżej:
>
> Form1
> textBox1
>
> Form2
> button2
>
> Teraz potrzebuję by po naciśnięciu button2 została odczytana wartość z
> TextBox1 i nie wiem jak się za to zabrać.
>
> Mogę na Form1 zrobić statyczną właściwość
>
> private static Form1 frm1;
>
> public static string TextBox1
> {
> get { return frm1.textBox1.Text; }
> }
>
> I na Form2 dobierać się do tego
>
> np. string s = Form1.TextBox1
>
> Ale czy to jest najlepsza metoda?
Zależy jak wywołujesz te formy, jeśli są to formy nadrzędne do innej to
możesz wystawić sam tekst jak właściwość. Jeśli wywołujesz formę 2 z
pierwszej możesz zastosować delegaty itd. Sposobów jest dużo, lecz myślę
że podany przez ciebie nie jest najlepszy. Napisz który skąd jest
wywołany.

Pozdrawiam Kamil Wojcieszek.
Re: formularze i podstawy programowania obiektowego [wiadomość #754 (odpowiedź na #753) ] pon, 09 lipiec 2007 05:14 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
zoltek jest aktualnie niedostępny zoltek
Wiadomości: 6
Dołączył(a): lipiec 2007
Junior Member
Kamil Wojcieszek pisze:
> zoltek napisał(a):
>> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
>> komponenty opis poniżej:
>>
>> Form1
>> textBox1
>>
>> Form2
>> button2
>>
>> Teraz potrzebuję by po naciśnięciu button2 została odczytana wartość z
>> TextBox1 i nie wiem jak się za to zabrać.
>>
>> Mogę na Form1 zrobić statyczną właściwość
>>
>> private static Form1 frm1;
>>
>> public static string TextBox1
>> {
>> get { return frm1.textBox1.Text; }
>> }
>>
>> I na Form2 dobierać się do tego
>>
>> np. string s = Form1.TextBox1
>>
>> Ale czy to jest najlepsza metoda?
> Zależy jak wywołujesz te formy, jeśli są to formy nadrzędne do innej to
> możesz wystawić sam tekst jak właściwość. Jeśli wywołujesz formę 2 z
> pierwszej możesz zastosować delegaty itd. Sposobów jest dużo, lecz myślę
> że podany przez ciebie nie jest najlepszy. Napisz który skąd jest
> wywołany.
>
W moim przypadku obie formy to MDIChildForm i nie wywołuję żadnej formy
z formy, trochę nie po polsku wyszło. Jedynie najpierw otwieram Form1,
uzupełniam textbox-y, po czym niezależnie otwieram Form2 i zczytuje to
co jest w textbox-ach formy1 by wykorzystać te wartości do pewnych
działan w Form2.
Re: formularze i podstawy programowania obiektowego [wiadomość #755 (odpowiedź na #754) ] pon, 09 lipiec 2007 05:55 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
Kamil Wojcieszek jest aktualnie niedostępny Kamil Wojcieszek
Wiadomości: 7
Dołączył(a): czerwiec 2007
Junior Member
zoltek napisał(a):
> Kamil Wojcieszek pisze:
>> zoltek napisał(a):
>>> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
>>> komponenty opis poniżej:
>>>
>>> Form1
>>> textBox1
>>>
>>> Form2
>>> button2
>>>
>>> Teraz potrzebuję by po naciśnięciu button2 została odczytana wartość
>>> z TextBox1 i nie wiem jak się za to zabrać.
>>>
>>> Mogę na Form1 zrobić statyczną właściwość
>>>
>>> private static Form1 frm1;
>>>
>>> public static string TextBox1
>>> {
>>> get { return frm1.textBox1.Text; }
>>> }
>>>
>>> I na Form2 dobierać się do tego
>>>
>>> np. string s = Form1.TextBox1
>>>
>>> Ale czy to jest najlepsza metoda?
>> Zależy jak wywołujesz te formy, jeśli są to formy nadrzędne do innej
>> to możesz wystawić sam tekst jak właściwość. Jeśli wywołujesz formę 2
>> z pierwszej możesz zastosować delegaty itd. Sposobów jest dużo, lecz
>> myślę że podany przez ciebie nie jest najlepszy. Napisz który skąd
>> jest wywołany.
>>
> W moim przypadku obie formy to MDIChildForm i nie wywołuję żadnej formy
> z formy, trochę nie po polsku wyszło. Jedynie najpierw otwieram Form1,
> uzupełniam textbox-y, po czym niezależnie otwieram Form2 i zczytuje to
> co jest w textbox-ach formy1 by wykorzystać te wartości do pewnych
> działan w Form2.
A nie lepiej w tym przypadku wykorzystać setttings lub stworzyć sobie
jakąś klasę z ustawieniami, która będzie przechowywała niezbędne dane
podczas działania aplikacji.

Pozdrawiam Kamil Wojcieszek
Re: formularze i podstawy programowania obiektowego [wiadomość #756 (odpowiedź na #755) ] pon, 09 lipiec 2007 06:15 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
zoltek jest aktualnie niedostępny zoltek
Wiadomości: 6
Dołączył(a): lipiec 2007
Junior Member
Kamil Wojcieszek pisze:
[...]
> A nie lepiej w tym przypadku wykorzystać setttings lub stworzyć sobie
> jakąś klasę z ustawieniami, która będzie przechowywała niezbędne dane
> podczas działania aplikacji.
>

No właśnie nie, otóż po wykonaniu obliczeń na Form2, przechodzę znowu do
Form1 zmieniam ustawienia i znowu obliczenia na Form2. Niestety nie mogę
traktować danych z Form1 w textBox-ach jako stałe.
Re: formularze i podstawy programowania obiektowego [wiadomość #757 (odpowiedź na #752) ] pon, 09 lipiec 2007 06:22 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
zoltek jest aktualnie niedostępny zoltek
Wiadomości: 6
Dołączył(a): lipiec 2007
Junior Member
Tomasz Muszyński pisze:
> zoltek pisze:
>> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
>> komponenty opis poniżej:

>
> Poczytaj archiwum grupy. Co dziesiąty post jest o tym problemie...
>

Cofnąłem się aż do lutego tego roku i co prawda znalazłem kilka postów
podobnych ale jednak w żadnym nie było nawet pośrednio odpowiedzi, która
by mnie nakierowała na rozwiązanie :(

>> Mogę na Form1 zrobić statyczną właściwość
>>
>> private static Form1 frm1;
>>
>> public static string TextBox1
>> {
>> get { return frm1.textBox1.Text; }
>> }

>
> Static jest tu błędem.
>

Ale bez tego static to nie będę miał dostępu do tych właściwości.
Deklaracja
private static Form1 frm1;
jest też wykorzystywana w publicznej statycznej metodzie, która
poszukuje czy jest już jakaś instancja tej formy czy nie i zwraca
referencję do niej jeśli jest lub tworzy Form1.
Re: formularze i podstawy programowania obiektowego [wiadomość #758 (odpowiedź na #757) ] pon, 09 lipiec 2007 06:55 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
Kamil Wojcieszek jest aktualnie niedostępny Kamil Wojcieszek
Wiadomości: 7
Dołączył(a): czerwiec 2007
Junior Member
zoltek napisał(a):
> Tomasz Muszyński pisze:
>> zoltek pisze:
>>> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
>>> komponenty opis poniżej:
>
>>
>> Poczytaj archiwum grupy. Co dziesiąty post jest o tym problemie...
>>
>
> Cofnąłem się aż do lutego tego roku i co prawda znalazłem kilka postów
> podobnych ale jednak w żadnym nie było nawet pośrednio odpowiedzi, która
> by mnie nakierowała na rozwiązanie :(
>
>>> Mogę na Form1 zrobić statyczną właściwość
>>>
>>> private static Form1 frm1;
>>>
>>> public static string TextBox1
>>> {
>>> get { return frm1.textBox1.Text; }
>>> }
>
>>
>> Static jest tu błędem.
>>
>
> Ale bez tego static to nie będę miał dostępu do tych właściwości.
> Deklaracja
> private static Form1 frm1;
> jest też wykorzystywana w publicznej statycznej metodzie, która
> poszukuje czy jest już jakaś instancja tej formy czy nie i zwraca
> referencję do niej jeśli jest lub tworzy Form1.
Chyba za bardzo jesteś przywiązany do programowania na kontrolkach i
samego wizualnego, radze oddzielać wszelkiego rodzaju obliczenia i
operacje od warstwy wizualnej. Aktualizacje danych mogą odbywać się
poprzez zdarzenia, delegaty itp. Polecam przeczytać jakąś książkę o
wzorcach projektowych w programowaniu obiektowym. No chyba że chce się
pisać dalej jak w VB6.

Pozdrawiam Kamil Wojcieszek
Re: formularze i podstawy programowania obiektowego [wiadomość #759 (odpowiedź na #751) ] pon, 09 lipiec 2007 07:09 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
Robert Winkler jest aktualnie niedostępny Robert Winkler
Wiadomości: 9
Dołączył(a): kwiecień 2007
Junior Member
> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
> komponenty opis poniżej:
[...]
> Ale czy to jest najlepsza metoda?

Tak, nazywa się Composite UI Application Block
i został wydane w ramach Microsoft Patterns & Practices
w pakietach Smart Client Software Factory
i Web Client Software Factory
na stronie Codeplex
http://www.codeplex.com/smartclient


--
____________
Robert Winkler
Re: formularze i podstawy programowania obiektowego [wiadomość #760 (odpowiedź na #758) ] pon, 09 lipiec 2007 07:34 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
zoltek jest aktualnie niedostępny zoltek
Wiadomości: 6
Dołączył(a): lipiec 2007
Junior Member
On 9 Lip, 12:55, Kamil Wojcieszek <kwojcies...@gmail.com> wrote:
> zoltek napisał(a):
>
> > Tomasz Muszyński pisze:
> >> zoltek pisze:
> >>> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
> >>> komponenty opis poniżej:
>
> >> Poczytaj archiwum grupy. Co dziesiąty post jest o tym problemie...
>
> > Cofnąłem się aż do lutego tego roku i co prawda znalazłem kilka postów
> > podobnych ale jednak w żadnym nie było nawet pośrednio odpowiedzi, która
> > by mnie nakierowała na rozwiązanie :(
>
> >>> Mogę na Form1 zrobić statyczną właściwość
>
> >>> private static Form1 frm1;
>
> >>> public static string TextBox1
> >>> {
> >>> get { return frm1.textBox1.Text; }
> >>> }
>
> >> Static jest tu błędem.
>
> > Ale bez tego static to nie będę miał dostępu do tych właściwości.
> > Deklaracja
> > private static Form1 frm1;
> > jest też wykorzystywana w publicznej statycznej metodzie, która
> > poszukuje czy jest już jakaś instancja tej formy czy nie i zwraca
> > referencję do niej jeśli jest lub tworzy Form1.
>
> Chyba za bardzo jesteś przywiązany do programowania na kontrolkach i
> samego wizualnego, radze oddzielać wszelkiego rodzaju obliczenia i
> operacje od warstwy wizualnej. Aktualizacje danych mogą odbywać się
> poprzez zdarzenia, delegaty itp. Polecam przeczytać jakąś książkę o
> wzorcach projektowych w programowaniu obiektowym. No chyba że chce się
> pisać dalej jak w VB6.
>

Coś w tym przywiązaniu jest i szczerze mówiąc bardzo chciałbym się od
tego uwolnić. Może jakaś propozycja literatury? Będę wdzięczny.
Re: formularze i podstawy programowania obiektowego [wiadomość #761 (odpowiedź na #756) ] pon, 09 lipiec 2007 08:24 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
Homar jest aktualnie niedostępny Homar
Wiadomości: 1
Dołączył(a): lipiec 2007
Junior Member
2007-07-09 11:15, zoltek napisal(a):

> No właśnie nie, otóż po wykonaniu obliczeń na Form2, przechodzę znowu do
> Form1 zmieniam ustawienia i znowu obliczenia na Form2. Niestety nie mogę
> traktować danych z Form1 w textBox-ach jako stałe.

No to moze wzorzec singleton ci wystarczy?
Po update-cie kontrolek na Form1 zapisujesz sie w singletonie
i automatycznie masz do tego dostep z Form2.

mh
Re: formularze i podstawy programowania obiektowego [wiadomość #762 (odpowiedź na #759) ] pon, 09 lipiec 2007 08:59 Przejdź do poprzedniej wiadomościPrzejdź do następnej wiadomości
sirtap jest aktualnie niedostępny sirtap
Wiadomości: 6
Dołączył(a): czerwiec 2007
Junior Member
"Robert Winkler" <winkel@NOSPAMpoczta.fm> wrote in message
news:f6t51s$kmb$1@news.onet.pl...
>> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
>> komponenty opis poniżej:
> [...]
>> Ale czy to jest najlepsza metoda?
>
> Tak, nazywa się Composite UI Application Block
> i został wydane w ramach Microsoft Patterns & Practices
> w pakietach Smart Client Software Factory
> i Web Client Software Factory
> na stronie Codeplex
> http://www.codeplex.com/smartclient
>
>

A naprawili już wszystkie bugi w CUI ?

regards
andrew
Re: formularze i podstawy programowania obiektowego [wiadomość #763 (odpowiedź na #751) ] pon, 09 lipiec 2007 09:03 Przejdź do poprzedniej wiadomości
sirtap jest aktualnie niedostępny sirtap
Wiadomości: 6
Dołączył(a): czerwiec 2007
Junior Member
"zoltek" <jryko@poczta.onet.pl> wrote in message
news:f6sqka$a12$1@news.dialog.net.pl...
> Zaciąłem się. Szukam czytam i nic. Otóż mam 2 formularze a na nich
> komponenty opis poniżej:
>
> Form1
> textBox1
>
> Form2
> button2
>
> Teraz potrzebuję by po naciśnięciu button2 została odczytana wartość z
> TextBox1 i nie wiem jak się za to zabrać.
>

W takim przypadku najlepiej byłoby trzymać w MDI Parent wskaźniki na
wszystkie formy child MDI i udostępniać je publicznie. Każdy child MDI ma
wskaźnik na parenta, a przez to miałby dostęp do wszystkich form child MDI.
To jest najprostrzy sposób.
Jeżeli okien jest dużo, to można by zrobić klase-singleton, która
"rejestrowałaby" i "udostępniała" wszystkie okna.

regards
andrew
Poprzedni wątek:[asp.net 2.0] przekazanie biezacej nazwy zalogowanego usera do gridview
Następny wątek:jak sie dostac do obiektu w JS z poziomu ASP.NET 2.0
Idź do forum:
  


Aktualna data: czw lut 9 23:20:06 EST 2012

Łączny czas generowania strony wyniósł 0,17544 sekund.
.:: Kontakt :: 901 system wymiany linkow sprawdz strone no host brak hosta 906 Strona główna ::.

Powered by: FUDforum 2.7.6.
Copyright ©2001-2006 FUD Forum Bulletin Board Software