C#의 NumericUpDown 컨트롤에 대한 특정 구성을 구성하는 데 문제가 있습니다.C# NumericUpDown 컨트롤의 시차 증가
기본적으로 Increment 간격을 설정할 수 있음을 알았지 만 클릭 한 화살표 (위 또는 아래)에 따라 Increment 간격을 관리하고 싶습니다. 컨트롤의 이벤트를 확인했지만 각 화살표에 대한 이벤트를 찾지 못했습니다.
기본적으로 서로 다른 값에서 증분이 다른 컨트롤을 만들고 싶습니다. 0.04 등
에의 5.00에서 0.01 0.00 5.00 단위에서
20.00로 증가이 가능합니까?참고 : 또한 valuechanged 이벤트가 트리거 될 때 마지막 값에 대한 컨트롤의 기록 값이 유용 할 수 있습니다. 이것이 존재합니까?
의견이나 제안 사항에 대해 미리 감사드립니다.
편집 : 제대로 설명하지 않았으므로 편집합니다. 여기에서 어떤 화살표가 눌려 졌는지 알기를 원하기 때문에 그 이유가 있습니다.
나는 이것보다 더 많거나 적은 것을 가지고 있습니다. 모든 범위를 추가하고 화살표 대신 키보드를 사용하여 값 필드에 잘못된 값을 직접 설정하지 못하도록 모듈로 나누기를 사용하여 일부 검사를 추가했습니다. 문제는 화살표를 사용하여 제한을 통과하면 모든 것이 정상입니다. 그러나 화살을 사용하면 한 걸음 만 놓치지 요. 값이 100이고 나는 아래를 클릭하면이 경우
if (cuotaUno.Value >= 30M && cuotaUno.Value < 50M)
{
cuotaUno.Increment = 2M;
if (!((cuotaUno.Value % 2M) == 0))
{
cuotaUno.Value = cuotaUno.Value - (cuotaUno.Value % 2M);
}
}
if (cuotaUno.Value >= 50M && cuotaUno.Value < 100M)
{
cuotaUno.Increment = 5M;
if (!((cuotaUno.Value % 5M) == 0))
{
cuotaUno.Value = cuotaUno.Value - (cuotaUno.Value % 5M);
}
}
는, 내가 90이고 나는가 클릭하면, 제대로 95과 100로 이동, 90 대신 95로 직접 이동하지만.
왜 어떤 버튼을 눌렀는지 알아야합니까? NumericUpDown.ValueChanged 이벤트 처리기의 값을 확인하고 그에 따라 NumericUpDown.Increment를 조정하십시오. – Tester101
증가량을 100에 도달하면 10M으로 설정했을 것입니다. 이제 다시 돌아 오면 여전히 10M이므로 값은 이제 90M이됩니다. 이는 또한 50에서 값을 줄이면 발생합니다. 50으로 이동합니다. 이것은 (50-5)가 45이고 2M으로 나눌 수 있는지 확인한 후 30M에서 49M까지 떨어지기 때문에 발생합니다. 값은 44입니다.해결 방법은 내 솔루션을 확인하십시오. – Amsakanna
주의! 논리를 수행하는 동안 언제든지 cuotaUno.Value를 설정하지 마십시오. 그냥 변수에 저장하고 변수와 함께 로직을 수행 한 다음 마지막으로 속성에 설정하십시오. 그렇지 않으면 다시 ValueChanged 이벤트를 트리거합니다. – Amsakanna