3 formatki: gdy jedna aktywna to druga zablokowana - jak ?

0

Witaj,
jako produkt końcowy chce uzyskać coś takiego: gdy włączam program pojawia się okienko o programie (jakaś formatka) która jest otwarta powiedzmy przez 2 sekundy,nastepnie się zamyka automatycznie i pojawia się główny program: główna formatka która jest zablokowana oraz trzecia formatka aktywna która służy do logowania: jeśli user poda poprawne dane to ta formatka znika i główna formatka jest aktywna, w przeciwnym razie wszystko się zamyka.

Jak to zrobić? gubię się w tych formatkach, nie wiem którą pierwszą odpalić.

1

gubię się w tych formatkach, nie wiem którą pierwszą odpalić.

eee... no tą która ma być pierwsze widoczna...

która jest otwarta powiedzmy przez 2 sekundy,

Timerem. Obsługujesz tick, to chyba nie jest trudne.

public FormaStartowa()
{
Timer timer = new Timer();
timer.Interval = 2000;
timer.Tick += cośtammetoda;
timer.Start();
}

cośtammetoda(object sender, EventArgs e)
{
this.Close();
}

Jeśli chodzi o następne to jest jeszcze prościej - po prostu jeśli druga formatka - ustawiasz pierwszą na (chyba tak się to nazywało) Parent drugiej. Jeśli druga stwierdzi że ma poprawne dane to 'się' zamyka - this.Close(), już było - a jeśli nie to zamyka rodzica i siebie.
</quote>

0

no dobra tylko jeśli w program.cs (robię to jako Windows forms Application) ustawię jako pierwszy ten startowy form i po tych 2 sekundach go zamknę to się cała aplikacja zamyka...

1
static void Main()
{
Application.Run(FormaStartowa);
Application.Run(FormaDruga);
}

:]

0

dobra, to jeszcze jak zablokować tą formę w tle i zrobić aby działała tylko ta gdzie podaje się login i hasło?

0

Tą drugą pokazujesz jako okienko modalne, ShowDialog. Wtedy ta pierwsza bedzie zablokowana.

0

poszło, dizęki :)

0

nie chce zakładać nowego tematu. Pytanie:
chce się zabezpieczyć przed zamykaniem tej formatki z logowaniem: aby po wciśnięciu na krzyżyk w prawym górnym rogu wyskakiwał monit że dane są nie poprawne, albo aby cała aplikacja się zamykała.
Obecnie jest tak że jak kliknę na ten przycisk to się wyłącza formatka z logowaniem i program się włącza... :(

0
        protected override void OnClosing(CancelEventArgs e)
        {
            //instrukcje
            e.Cancel = true; //okno sie nie zamknie
        }
0

właśnie udało mi się to znaleźć :)
przy czym to nie dokońca działa, trzeba zrobić to tak:

 public Konstruktor()
        {
            InitializeComponent();
            this.FormClosing += new FormClosingEventHandler(Konstruktor_FormClosing);
            ...           
        }
......
 private void Kontruktor_FormClosing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            e.Cancel =true;
        }
1

Równie dobrze można to zrobić tak jak pewnie inne "wyklikujesz" (np. z button.Click()), czyli z okna właściwości formy klikasz dwa razy na 'FormClosing' i otrzymujesz taką metodę.

0
ne0 napisał(a)

właśnie udało mi się to znaleźć :)
przy czym to nie dokońca działa, trzeba zrobić to tak:
<...>

Zauważ że w tym co wysłałem jest protected override. Od razu nadpisujesz metode, dla formy, na swoją.
I nie trzeba dodawać tego do Eventu. Działa samo z siebie.

W każdym razie dwa sposoby przynoszą oczekiwany efekt ;P

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