Estoy usando un control TrackBar
. Por defecto, sus valores son int32
. Realmente me gustaría usar valores decimales para que el uso pueda seleccionar en un nivel más granular. ¿Cómo puedo obtener el control TrackBar
para aceptar flotadores?Cómo usar flotadores con TrackBar
Respuesta
Puede usar un multiplicador. Digamos, por ejemplo, que quería hacer que su control TrackBar vaya de 0 a 5 con incrementos de 0.01. Simplemente configure el Mínimo a 0, el Máximo a 500, e incremente por 1.
Cuando vaya a establecer su valor flotante, multiplíquelo por 100, y úselo para el valor de Barra de seguimiento.
Debe ser capaz de obtener cualquier grado de precisión (realista) de esta manera, ya que la barra de desplazamiento funciona con ints, y tiene el rango de datos completo de Int32 disponible. Esto es mucho más preciso de lo que requiere una interfaz de usuario.
Gran solución. Funciona genial. – rross
Otra idea sería hereda de TrackBar
y simular valores de coma flotante en una clase personalizada de la manera Reed Copsey sugiere utilizar enteros y se multiplica con un factor de precisión.
Los siguientes trabajos con buena pinta para pequeños valores de coma flotante:
class FloatTrackBar: TrackBar
{
private float precision = 0.01f;
public float Precision
{
get { return precision; }
set
{
precision = value;
// todo: update the 5 properties below
}
}
public new float LargeChange
{ get { return base.LargeChange * precision; } set { base.LargeChange = (int) (value/precision); } }
public new float Maximum
{ get { return base.Maximum * precision; } set { base.Maximum = (int) (value/precision); } }
public new float Minimum
{ get { return base.Minimum * precision; } set { base.Minimum = (int) (value/precision); } }
public new float SmallChange
{ get { return base.SmallChange * precision; } set { base.SmallChange = (int) (value/precision); } }
public new float Value
{ get { return base.Value * precision; } set { base.Value = (int) (value/precision); } }
}
¡Una solución realmente agradable! Es como la respuesta aceptada, pero en su propia clase. ¡Gracias! – itmuckel
- 1. Espejo Two TrackBar
- 2. Numpy bincount() con flotadores
- 3. WinForms Volume Slider/Trackbar User Control
- 4. Adición de flotadores con javascript
- 5. Uso de flotadores con sprintf() en C
- 6. de entrada fscanf con flotadores
- 7. Precisión de flotadores con printf
- 8. Redondeo de flotadores con ostringstream
- 9. Número de flotadores entre dos flotadores
- 10. ¿Cómo convertir cuerdas a flotadores con una precisión perfecta?
- 11. Almacenar ints como flotadores
- 12. Aserciones de prueba para tuplas con flotadores
- 13. Trabajando con flotadores css en html2pdf
- 14. ul con flotadores dentro de un div
- 15. ¿Cómo formatear una cadena con flotadores en Ruby usando # {variable}?
- 16. ¿Cómo alinear "páginas de flotadores" con el margen superior?
- 17. Desembalaje flotadores hexagonal codificada
- 18. Cómo verificar las dependencias de los flotadores
- 19. despejando flotadores anidados
- 20. precisión decimal de flotadores
- 21. cadena ocaml a 4 flotadores
- 22. fundición NAN flotadores a int
- 23. función Hash para los flotadores
- 24. flotadores de impresión en ada
- 25. CL_OUT_OF_RESOURCES para 2 millones de flotadores con 1GB de VRAM?
- 26. Problemas con el redondeo de flotadores en Python
- 27. Haskell: Fuerza flotadores tener dos decimales
- 28. Muestra de volteo en flotadores SSE empaquetados
- 29. NSDiccionario ordenar por claves como flotadores
- 30. En Python flotadores pequeños tendiendo a cero
entero le da 2 mil millones de valores posibles. ¿Cuánto más granular necesita para este control? – Kibbee
No son exactamente los valores. Es cómo están representados. El cliente quiere el representado en forma decimal. – rross