Quiero intercambiar las flechas hacia arriba y hacia abajo ( solo funcionalidad, no las flechas reales ) en el control NumericUpDown. Por ejemplo, al hacer clic en la flecha ARRIBA, el valor debería disminuir y, de manera similar, al hacer clic en la flecha Abajo, el valor debería aumentar.
Intenté heredar de la clase NumericUpDown y anular UpButton() y DownButton() . Pensé que simplemente intercambiar el código entre estos dos métodos debería funcionar. Pero al pegar el código DownButton() en UpButton() anulado,
public class MyCustomNumericUpDown : NumericUpDown { public override void UpButton() { SetNextAcceleration(); if (base.UserEdit) { ParseEditText(); } decimal num = currentValue; try { num -= Increment; if (num < minimum) { num = minimum; if (Spinning) { StopAcceleration(); } } } catch (OverflowException) { num = minimum; } Value = num; } }el programa anterior arroja los siguientes errores.
The name 'SetNextAcceleration' does not exist in the current context The name 'currentValue' does not exist in the current context The name 'minimum' does not exist in the current context The name 'Spinning' does not exist in the current context The name 'StopAcceleration' does not exist in the current context The name 'minimum' does not exist in the current contextVeo que todos estos métodos y variables están configurados como privados en la clase base. Lo que podría estar arrojando estos errores de "no existe".
Alguien sabe cómo hacer esto? Solo quiero que se cambie la funcionalidad de los botones de flecha. Por ejemplo, al hacer clic en la flecha ARRIBA, el valor debería disminuir y, de manera similar, al hacer clic en la flecha Abajo, el valor debería aumentar.
Puede derivar de NumericUpDown y anular los métodos UpButton y DownButton como este (llamando a base.TheOtherMethod para intercambiar la funcionalidad):
public class CrazyNumericUpDown : NumericUpDown { public override void UpButton() { base.DownButton(); } public override void DownButton() { base.UpButton(); } }