Discussion:
TrackBar nur bei Ticks einschnappen lassen
(zu alt für eine Antwort)
Matthias Weißer
2005-11-17 18:18:10 UTC
Permalink
Hi

ist es möglich einen System.Windows.Forms.TrackBar nur an den
dargestellten Ticks "einschnappen" zu lassen oder muß ich da den
passenden Event abfangen und das händisch erledigen?
--
Matthias Weißer
***@matwei.de
http://www.matwei.de
Frank Dzaebel
2005-11-17 18:42:46 UTC
Permalink
Hallo Matthias,
ist es möglich einen System.Windows.Forms.TrackBar nur an den dargestellten
Ticks "einschnappen" zu lassen oder muß ich da den passenden Event abfangen
und das händisch erledigen?
Das ist doch Standard bei 1.1- und 2.0 TrackBar !?


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Matthias Weißer
2005-11-17 19:08:01 UTC
Permalink
Post by Frank Dzaebel
Hallo Matthias,
ist es möglich einen System.Windows.Forms.TrackBar nur an den dargestellten
Ticks "einschnappen" zu lassen oder muß ich da den passenden Event abfangen
und das händisch erledigen?
Das ist doch Standard bei 1.1- und 2.0 TrackBar !?
Und wie?
Ich hab meinen TrackBar folgendermaßen initialisiert (position usw.
gesnippt):

trackBarObj.Maximum = 40;
trackBarObj.Minimum = 5;
trackBarObj.SmallChange = 5;
trackBarObj.TickFrequency = 5;
trackBarObj.Value = 5;

Das Teil sollte also bei 5, 10, 15 usw. einschnappen. Klappt aber nicht.
Ich kann den Slider beliebig (5, 6, 7 ...) positionieren.
--
Matthias Weißer
***@matwei.de
http://www.matwei.de
Frank Dzaebel
2005-11-17 19:23:17 UTC
Permalink
Hallo Matthias,
Post by Frank Dzaebel
Das ist doch Standard bei 1.1- und 2.0 TrackBar !?
Und wie? Ich hab meinen TrackBar folgendermaßen initialisiert
trackBarObj.Maximum = 40; trackBarObj.Minimum = 5;
trackBarObj.SmallChange = 5; trackBarObj.TickFrequency = 5;
trackBarObj.Value = 5;
trackBar1.Maximum = 8; trackBar1.Minimum = 1;
trackBar1.SmallChange = 1; trackBar1.TickFrequency = 1;
trackBar1.Value = 1;

Graphisch gesehen würde es so aussehen, wie Du
es vorhattest. Und es "schnappt ein".


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Frank Dzaebel
2005-11-17 19:40:26 UTC
Permalink
Nachtrag,

SmallChange-Eigenschaft bezieht sich auf die
Cursor-Tasten (hier) <Right> und <Left>, nicht auf
die Maus-Aktionen !

"... Wenn der Benutzer eine der Pfeiltasten drückt":
[TrackBar.SmallChange-Eigenschaft]
http://msdn.microsoft.com/library/deu/cpref/html/frlrfsystemwindowsformstrackbarclasssmallchangetopic.asp


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Matthias Weißer
2005-11-17 19:40:02 UTC
Permalink
Post by Frank Dzaebel
Hallo Matthias,
Post by Frank Dzaebel
Das ist doch Standard bei 1.1- und 2.0 TrackBar !?
Und wie? Ich hab meinen TrackBar folgendermaßen initialisiert
trackBarObj.Maximum = 40; trackBarObj.Minimum = 5;
trackBarObj.SmallChange = 5; trackBarObj.TickFrequency = 5;
trackBarObj.Value = 5;
trackBar1.Maximum = 8; trackBar1.Minimum = 1;
trackBar1.SmallChange = 1; trackBar1.TickFrequency = 1;
trackBar1.Value = 1;
Graphisch gesehen würde es so aussehen, wie Du
es vorhattest. Und es "schnappt ein".
Schon klar. Dann muß ich halt den Wert immer umrechnen wenn ich darauf
zugreife. Würde sich das Control jedoch so verhalten wie von mir
erwartet (Der jSlider (Swing) tut das) könnte ich den Wert direkt
verwenden. Naja, kleiner Schönheitsfehler.

Was bin ich froh das ich nicht ständig GUI machen muss.
--
Matthias Weißer
***@matwei.de
http://www.matwei.de
Frank Dzaebel
2005-11-17 20:02:23 UTC
Permalink
Hallo Matthias,
Post by Matthias Weißer
Post by Frank Dzaebel
Graphisch gesehen würde es so aussehen, wie Du
es vorhattest. Und es "schnappt ein".
Schon klar. Dann muß ich halt den Wert immer umrechnen wenn ich darauf
zugreife. Würde sich das Control jedoch so verhalten wie von mir erwartet (Der
jSlider (Swing) tut das) könnte ich den Wert direkt verwenden. Naja, kleiner
Schönheitsfehler.
Naja, es ist so spezifiziert in der Doku.


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Pascal Schmitt
2005-11-17 20:24:34 UTC
Permalink
Hallo!
Post by Frank Dzaebel
Post by Matthias Weißer
Post by Frank Dzaebel
Graphisch gesehen würde es so aussehen, wie Du
es vorhattest. Und es "schnappt ein".
Schon klar. Dann muß ich halt den Wert immer umrechnen wenn ich darauf
zugreife. Würde sich das Control jedoch so verhalten wie von mir
erwartet (Der jSlider (Swing) tut das) könnte ich den Wert direkt
verwenden. Naja, kleiner Schönheitsfehler.
Naja, es ist so spezifiziert in der Doku.
Trotzdem doof :D

Die Windows.Forms-Controls wurden wirklich äußerst unkreativ
zusammengenagelt - allein zum Slider fallen mir auf Anhieb ein Haufen
Wunschfeatures ein (z.B. double-Zahlen, Range-Beschränkungsmöglichkeit
wie z.B. bei den Energieeinstellungen von MacOSX, mehr
Darstellungsformen: z.B. Drehknopf mit einstellbarem Start-Stop-Winkel,
Tooltips, die die ausgewählten Werte anzeigen [gab es doch mal bei VB,
oder?], logarithmische Darstellung, verschiedene Skalierungen wie bei
Photoshop[afaik]: etwa die ersten 50% von 0-5 linear, andere Hälfte
5-1000 logarithmisch)

Naja - so bleibt zumindest noch der Markt für Drittanbieter offen... [naja]
--
Pascal Schmitt
Frank Dzaebel
2005-11-18 07:06:11 UTC
Permalink
Hallo Pascal,
WinForm-Controls unkreativ
Die meisten WinForm-Controls kann man ja
benutzerdefiniert erweitern, was früher noch
nicht so einfach möglich war. Ich finde die zentrale
Funktionalität eigentlich recht gelungen. Dass
noch Bereiche offen sind, freut die 3rd Partys ;-)

.NET 2.0 hat jetzt eine Unmenge
an neuen Controls. Teilweise schwer, die alle
noch im Überblick zu haben.


ciao Frank
--
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET
Loading...