[ damakii @ 08.02.2010. 20:22 ] @
Imam dvije forme u vb.net. Prva je login forma, a druga forma za unos nekih podataka. E sada nakon logiranja otvara mi se forma 2 kako i treba, ali sada hocu u isto vrijeme da mi se zatvori login forma. Pokusao sam sa Me.close() ali mi zatvori obje forme. Moguce je to napraviti sa Me.hide(), ali mislim da to nije isto. Pomoć.
[ dili900 @ 01.05.2010. 23:21 ] @
treba pzvati login formu od formu za unos a ne da Login forma bude StartUp. Od drugu formu(Formu za unos ) da pozoves Login formu, proveris dali je korisnik uneo tacne podatke i nastavis sa citanjem podaci u tu formu, ili zatvoris progrom u suprotno.
[ Mikelly @ 04.05.2010. 12:36 ] @
Ja bih licno radije postavio login na startup u jedan Thread, a za drugu formu bih kreirao novi Thread, nesto kao:

Nakon uspjesne prijave
Code:

Thread T = new Thread(new ThreadStart(StartMainForm));
T.Start();

Application.ExitThread();


Code:

[STAThread]
void StartMainForm()
{
Application.Run(new MainForm());
}
[ ravni @ 04.05.2010. 19:11 ] @
a koji boljitak se dobija ovim postupkom?

inace mi je sumnjivo da li bi to radilo jer kreiras kontrole sa non-GUI treda
[ Boris B. @ 04.05.2010. 20:42 ] @
Napravis klasu LoginForm sa OK dugmetom i u OK handler dodas proveravanje user-a i stavku Close(). Zatim u Program.cs napises nesto kao:

Code:

  bool ok;
  using (LoginForm login = new LoginForm())
  {
    login.ShowModal()
    ok = login.IsUserVerified();
  }
  if (ok)
    Application.Run(new MainForm());


Naravno ovo je samo osnovni koncept, ubrzo ces skapirati da ti treba i prvo klasa koja ce da obavlja proveravanje user-a i klasa koja ce da cuva podatke o trenutno prijavljenom useru...
Za novim tredom nema nikakve potrebe jer je sam problem potpuno linearan, znaci nema dalje dok se uspesno ne prijavi korisnik.
[ Mikelly @ 05.05.2010. 10:03 ] @
@BorisB

Sad me zbuni. Zar se sa Application.Run() ne kreira Messagge Loop? Koji Messagge Loop obradjuje Login formu u tom slucaju, ako ga ti kreiras tek na kraju?

@ravni
Ja sam nekako 'na silu' dosao do ovoga resenja. Isto sam probao kao damakii, i naisao na isti problem kao on. Zatvaranjem startup forme, zatvara se program. Kreiranjem main forme na drugom threadu izbjegavam upravo to, da zatvaranjem login forme zatvorim aplikaciju. A oba thread-a su GUI, tako da nema nikakvih problema.
[ Boris B. @ 05.05.2010. 12:53 ] @
Login forma se prikazuje sa ShowDialog a ne Show, zato mozes da ga koristis pre standarnog app msg loopa. ShowDialog ili modalno prikazivanje se ponasa kao blocking poziv, znaci msgloop-safe jer ima svoj processing poruka.
[ ravni @ 05.05.2010. 16:44 ] @
resenje koje je boris dao sigurno radi, i neces sa njim imati problema
GUI thread je samo jedan
Citat:
Mikelly: Zatvaranjem startup forme, zatvara se program. Kreiranjem main forme na drugom threadu izbjegavam upravo to, da zatvaranjem login forme zatvorim aplikaciju. A oba thread-a su GUI, tako da nema nikakvih problema.
'startup forma' u smislu u kom ti koristis taj izraz je ona koju si prosledio u Application.Run method
[ Mikelly @ 05.05.2010. 18:43 ] @
GUI Thread-ova mozes da imas koliko hoces.

Svaki Thread koji ima Messagge Loop moze biti GUI Thread. A ne mora. Message Loop moze sluziti i samo za posredni pristup objektima u Threadu. Sa Application.Run() kreiras novi Message Loop. Ako to uradis u novom Threadu dobio si GUI Thread.
[ ravni @ 05.05.2010. 22:23 ] @
ne znam bas za to, ali ovde su u svakom slucaju threadovi visak
[ camango @ 01.11.2011. 17:46 ] @
pozz ljudi mene interesuje kako da nakon sto se neki moj clan uloguje samo on moze vidjeti odredenu stranicu,znaci kako da ubacim kod stranice u login formu,hvala puno
[ SpizaGenije @ 17.12.2011. 00:56 ] @
auuu brate... oni su o ovome raspravljali pre godinu i po...

ali da ti pomognem ako do sada nisi rešio problem, jer si pitanje postavio pre skoro dva meseca...

ja bih, da sam na tvom mestu, definisao jednu promenljivu, koja na početku ima vrednost "0" (recimo)... Kada se korisnik uloguje, ona dobija vrednost "1"...

e sada... pri pozivanju neke forme kojoj želiš da ograničiš pristup, prvo ispitaš vrednost one promenljive...
pa ako je vrednost "1", otvaraš mu formu... ako je vrednost "0", izbacuješ mu msgbox da mora da se loguje da bi video tu-i-tu stranicu...

eto... prosto k'o pasulj