Autor Wątek: Dialogi - przerywanie akceptacji dialogu  (Przeczytany 1965 razy)

Offline ShadowDancer

  • Redaktor

# Marzec 02, 2010, 00:37:07
Jest taka sytuacja, otóż mam dialog i w nim dajmy na to textboxa i buttona ustawionego jako accept button. Teraz chcę, aby gdy textbox jest pusty nie można było zamknąć dialogu przez OK(coś jak return false w procedurze okna w winapi). Jest to możliwe, czy jednak muszę pisać swoją obsługę tego ok?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline revo

  • Użytkownik

# Marzec 02, 2010, 00:48:12
W zdarzeniu FormClosing masz możliwość ustawienia Cancel w FormClosingEventArgs.

Offline Esidar

  • Użytkownik

# Marzec 02, 2010, 01:34:56
W textboxie podłącz się pod OnChange i daj coś w ten deseń:
void textBox_OnChange()
{
    if( string.IsNullOrEmpty( textBox.Text ) == true )
        button_Ok.Enabled = false;
    else
        button_Ok.Enabled = true;
}
Przycisk OK będzie szary i wyłączony aż ktoś coś wpisze.

Offline skowronkow

  • Użytkownik
    • skowronkow devsite

# Marzec 02, 2010, 09:13:56
You're right, ale nie bądźmy masochistami :)

void textBox_TextChanged(object sender, EventArgs e)
{
    button_Ok.Enabled = !string.IsNullOrEmpty(textBox.Text);
}

Oczywiście button z defaultu zablokowany.

Offline Zielony

  • Użytkownik
    • Ghurund Engine

# Marzec 02, 2010, 11:27:35
skowronkow mistrzu. Jesteś wielki, ale czepiasz się na zapas ;). Kod Esidara był przykładowy, Twój zapis trudniej się debugguje, a i kompilator woli optymalizować kod a'la RISC.

Offline skowronkow

  • Użytkownik
    • skowronkow devsite

# Marzec 02, 2010, 11:31:23
e tam się czepiam od razu;) i dlaczego niby się trudniej debugguje? Myślę, że tak samo trudno jak tamto, czyli w ogóle. Poza tym znajomość RISC czyni Cie równie wielkim mistrzem:)

Offline skowronkow

  • Użytkownik
    • skowronkow devsite

# Marzec 02, 2010, 11:32:56
e tam się czepiam od razu;) i dlaczego niby się trudniej debugguje? Myślę, że tak samo trudno jak tamto, czyli w ogóle. Poza tym znajomość RISC czyni Cie równie wielkim mistrzem:)

editto:

Czy to nie forum po to by się czepiać?  ;D

sory za double

Offline nilphilus

  • Użytkownik
    • wordpress

# Marzec 02, 2010, 11:35:29
e tam się czepiam od razu;) i dlaczego niby się trudniej debugguje? Myślę, że tak samo trudno jak tamto, czyli w ogóle. Poza tym znajomość RISC czyni Cie równie wielkim mistrzem:)

Trzeba dla zasady wygooglać :D

Offline Reg

  • Administrator
    • Adam Sawicki - Home Page

# Marzec 07, 2010, 20:18:41
Jeśli dobrze kojarzę, to można normalnie obsłużyć zdarzenie Click takiego przycisku i wtedy jeśli w kodzie jego funkcji nie wywołamy jawnie DialogResult = System.Windows.Forms.DialogResult.OK (a właśnie to przypisanie zamyka okno dialogowe), to przycisk nie zadziała.