2013-07-09 13 views
8

Używam programu Microsoft Visual C# 2010 Express. Kiedy zmieniam wartość numericUpDown za pomocą strzałek, mój przycisk staje się aktywny. Ale chcę również włączyć mój przycisk, gdy zmienię wartość numericUpDown, bezpośrednio zmieniając tekst.Zdarzenie TextChanged NumericUpDown

używam następujący kod:

private void numericUpDown1_ValueChanged(object sender, EventArgs e) 
{ 
    button1.Enabled = true; 
} 
+0

I jaki jest problem? – Abbas

+1

Spróbuj zmienić ustawienie kursora kontrolki numericUpDown po zmianie numeru –

+0

Lub naciśnij klawisz enter. Możesz także po prostu zasubskrybować zdarzenie keypress, ale pamiętaj, że tekst nie został jeszcze sprawdzony, więc jeśli wywołasz tę wartość, otrzymasz starą wartość. Jeśli jednak wywołasz wartość numericUpdown wewnątrz przycisku.Kliknięcie zdarzenia zostanie zmienione już. – Martheen

Odpowiedz

16

Może trzeba użyć TextChanged imprezę zamiast używania ValueChanged. Zdarzenie zmienione Wartość wymaga naciśnięcia klawisza Enter po zmianie wartości, aby uzyskać zwolnienie ValueChanged.

Co MSDN powiedzieć o NumericUpDown.ValueChanged Event

Na razie valueChanged występuje, właściwość Value mogą być zmieniane w kodzie, klikając przycisk w górę lub w dół, lub wprowadzając nową wartość dla użytkownika czytane przez kontrolę. Nowa wartość jest odczytywana, gdy użytkownik użytkownika wciska klawisz ENTER lub nawiguje z dala od kontrolki. Jeśli użytkownik wprowadzi nową wartość, a następnie kliknie przycisk w górę lub w dół, zdarzenie ValueChanged wystąpi dwukrotnie, MSDN.

Wiązanie zdarzenia TextChanged.

private void TestForm_Load(object sender, EventArgs e) 
{ 
    numericUpDown1.TextChanged += new EventHandler(numericUpDown1_TextChanged); 
} 

Deklaracja imprezy TextChanged.

void numericUpDown1_TextChanged(object sender, EventArgs e) 
{ 
    button1.Enabled = true; 
} 
+0

Czy to możliwe, że gdy zmieniam wartość, przycisk staje się aktywny, bez naciskania klawisza enter? – Lany

+0

Czy próbowałeś zdarzenia TextChanged? – Adil

+0

Tak, próbowałem, że ... nie dotyczy tutaj. , ale tak, można to zrobić, naciskając przycisk Enter. btw thankz :) – Lany

Powiązane problemy