Slider/Trackbar
-
Hallo,
ihr kennt ja bestimmt das Trackbar Control. Das ist dieser Slider, mit dem man einen integralen Wert zwischen [Minimum, Maximum] per Schieberegler einstellen kann. Mein Problem ist nun: Die Properties Minimum, Maximum der Trackbar sind int, ich brauche so einen Slider aber für ein float Intervall.
Sagen wir mein float Intervall ist [10.5, 30.8]. Die Breite ist also 20.3. Was soll ich da jetzt für Minimum und Maximum setzen? Mein 2. Problem: So wie ich das sehe (korrigiert mich, wenn ich falsch liege), ergibt sich die maximal mögliche "Auflösung" des Sliders aus dessen Breite. Beispiel: Sagen wir ich habe einen recht schmalen Slider auf meiner GUI. Wenn ich jetzt Minimum=0, Maximum=200,SmallChange=1 setze, und mit der Maus den Slider bewege, dann bewegt der sich in 1er Ticks. Also von 0 auf 1, von 1 auf 2 usw. Setze ich Maximum auf 1000, dann springen die Werte, zB von 0 auf 4, dann von 4 auf 8 usw, obwohl SmallChange nach wie vor 1 ist. Offenbar liegt das daran, dass der Slider einfach zu schmal ist, um 1000 verschiedene Werte darzustellen.
Wie mache ich das also, dass in meinem float intervall möglichst viele Werte darstellbar sind? Ich weiß ja nicht einfach so, wieviele das sind, da das ja abhängig von der Sliderbreite auf der GUI ist (ein 800px slider kann mehr einzelne werte darstellen als ein 100px slider)Danke für Tipps!
-
slider22 schrieb:
HSagen wir mein float Intervall ist [10.5, 30.8]. Die Breite ist also 20.3. Was soll ich da jetzt für Minimum und Maximum setzen?
Wie wäre es mit 105 und 308? Und dann
float result = trackBar1.Value * 0.1f;
slider22 schrieb:
Mein 2. Problem: So wie ich das sehe (korrigiert mich, wenn ich falsch liege), ergibt sich die maximal mögliche "Auflösung" des Sliders aus dessen Breite.
Soweit ich wieß bestimmen nur
SmallChange
undLargeChange
die "Auflösung".