Har följande metod: Har du lagt till en EventHandler? Självklart, men den reagerar inte på att man _skriver_ ett tal i den.... En fråga om try...catch...finally: Körs alltid finally? Eller körs det bara om något har inträffat? Det verkar som om ValueChanged inte anropas när du lämnar kontrollen antingen genom Tab eller genom att med musen markera en annan kontroll, tyvärr vågar jag inte svara på om detta är enligt designen eller om det är en bugg, jag har skickat det vidare på våra interna aliaser dock. Hej Har hittat textchanged under protected, måste man då göra en override? Vet inte riktigt vad du menar med override men om du anger samma metod för bägge eventen så kommer TextChanged och ValueChanged att utföra den. TextChanged verkar inte vara något bra alternativ eftersom om du skriver värdet 10 exempelvis så kommer eventet att triggas två gånger, en gång för varje siffra.. Inget att diskutera om. Men för att få ValueChange när man skriver in ett tal måste jag ha Leave :-/, just nu kör jag så att båda händelserna refererar till nudTmrTid_LeaveProblem med NumericUpDown.Value
<code>
private void nudTid_ValueChanged(object sender, System.EventArgs e)
{
int intVärde=5;
try
{
intVärde=Convert.ToInt32(nudTid.Value);
}
catch
{
intVärde=5;
}
finally
{
nudTid.Value=intVärde;
if(tmrKontroll.Enabled)
{
tmrKontroll.Enabled=false;
}
tmrKontroll.Interval=intVärde*1000*60;
if(chkKTimer.Checked)
{
tmrKontroll.Enabled=true;
}
Ladda.sparaInst("KTimerInt",intVärde);
}
}
</code>
Problemet jag har är att när man skriver ett tal i nudTid så kommer ingen value-händelse och value ändras inte... hur lösa? Ha readonly?
Mr T @thomassida.cjb.netSv: Problem med NumericUpDown.Value
<code>
nudTid.ValueChanged += new EventHandler(nudTid_ValueChanged);
</code>Sv: Problem med NumericUpDown.Value
Mr T @thomassida.cjb.netSv: Problem med NumericUpDown.Value
Sv: Problem med NumericUpDown.Value
En tillfällig lösning kan vara att använda eventet Leave istället för ValueChanged, antar att du redan har provat det...
Jag återkommer om jag får något förtydligande i detta!
MvhSv: Problem med NumericUpDown.Value
Verkar som att om man använder pil upp och ner för att stega sig upp och ner så sker eventet ValueChanged.
Om man skriver direkt i kontrollen så sker eventet TextChanged.
Detta torde vara i sin ordning då det i ena fallet sker en stegvis ökning i enlighet med värdet på Increment (väl kontrollerat) och i andra fallet kan förekomma ett godtyckligt värde utifrån vad som matas in.
B#Sv: Problem med NumericUpDown.Value
Edit.
Tog bort kontrollen och la in en ny, nu funkar det perfekt med change.. kanske blev fel vid konv. från frmwrk 1.0->1.1
Edit.
Hmmm..... sluta funka när jag tog bort leave... då körs inte eventet förrän man trycker på pilarna...
Edit.
Det här ger change+leave:
<code>
private void nudTmrTid_ValueChanged(object sender, System.EventArgs e)
{
MessageBox.Show("Change"+nudTmrTid.Value.ToString());
}
private void nudTmrTid_Leave(object sender, System.EventArgs e)
{
MessageBox.Show("Leave"+nudTmrTid.Value.ToString());
}
</code>
Det här ger bara Change när man trycker på pilarna
<code>
private void nudTmrTid_ValueChanged(object sender, System.EventArgs e)
{
MessageBox.Show("Change"+nudTmrTid.Value.ToString());
}
private void nudTmrTid_Leave(object sender, System.EventArgs e)
{
//MessageBox.Show("Leave"+nudTmrTid.Value.ToString());
}
</code>
och det blir likadant utan att ha med Leave alls....
Mr T @thomassida.cjb.netSv: Problem med NumericUpDown.Value
Leave eventet är ju inte riktigt bra om du sätter fokus på kontrollen och sedan lämnar den så kommer ju metoden att köras oavsett om du "matat in" ett värde eller inte.
B#Sv: Problem med NumericUpDown.Value
MvhSv: Problem med NumericUpDown.Value
Absolut bättre då att använda Leave.
/B#Sv: Problem med NumericUpDown.Value
Mr T @thomassida.cjb.net