W języku C# zdarzenie Changed dla elementu sterującego (na przykład numericupdown) zostaje wywołane niezależnie od tego, czy wartość została zmieniona bezpośrednio przez użytkownika, czy została zmieniona programowo w wyniku niektórych operacji. inne wydarzenie.Ustalenie, czy zmieniono zdarzenie spowodowane wprowadzeniem przez użytkownika, czy nie.
Czy istnieje sposób ustalenia, czy zdarzenie miało miejsce w wyniku wprowadzenia danych przez użytkownika? Na przykład zarówno ręczna zmiana wartości numericUpDown1, jak i kliknięcie przycisku 1 spowoduje wyświetlenie "wartości zmienionej". Co się stanie, jeśli chcę wyświetlić tylko "zmienioną wartość", jeśli została zmieniona przez kliknięcie strzałki w górę/w dół w kontrolce, a nie w wyniku kliknięcia przycisku 1?
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
MessageBox.Show("value changed");
}
private void button1_Click_1(object sender, EventArgs e)
{
numericUpDown1.Value = 3;
}
+1 za pomysł "najlepszej praktyki". Mam ten sam problem - ustawienie jednego efektu pola we wszystkich pozostałych. Dodałem wiele wczesnych wyjść, więc zdarzenia tylko się rozpalają, jeśli podstawowe dane się różnią, a logika się rozplątała. – ojrac