Implementieren eines SliderButtons Implementieren eines SliderButtons
Ergebnis 1 bis 13 von 13
  1. Guten Tag^^

    Tut mir Leid, dass ich euch so auf Trab halte^^

    Ich bin bei meinem nächsten Problem angelangt.. und zwar will ich einen Slider Coden.. also so wie beim Lockscreen von WM6.5 oder S2U2.

    Ich schäze mal das geht man am besten mit einer Trackbar an oder?

    Meine Idee ist es nun eine Trackbar zu gestalten die immer wieder auf 0 springt wenn der Wert nicht 10 ist...

    also habe mir einen MyTrack : Control erstellt.

    Wenn ich jetzt mit Void MyTrack1ValueChanged arbeite.. komme ich nicht voran...

    Der Code würde dann etwa so aussehen:
    Code:
    void MyTrack1ValueChanged(object sender, EventArgs e)
            {
                if (myTrack1.Value == 10)
                {
                    MessageBox.Show("10 erreicht");
                }
                else myTrack1.Value = 0;
            }
    Da hier jedesmal neu geschaut wird welchen Wert .value hat bleibt der Slider IMMER auf 0 und lässt sich nicht verschieben...

    Also wollte ich mit void MyTrack1MouseUp(object sender, MouseEventArgs e) dahinter gehen... folgender Code:
    Code:
    void MyTrack1MouseUp(object sender, MouseEventArgs e)
            {
                if (myTrack1.Value == 10)
                {
                    MessageBox.Show("10 erreicht");
                }
                else myTrack1.Value = 0;
            }
    Jetzt habe ich aber das Problem, dass mir beim debuggen gesagt wird, dass MouseUp für die Compact Framework Plattform nicht brauchbar ist...

    Jetzt frage ich mich wie ich das sonst noch angehen kann... Die Überprüfung darf erst stattfinden, wenn ich den Slider "loslasse"

    Help^^
    0
     

  2. Um auf MouseUp reagieren zu können, muss das wohl mit einem Button gelöst werden. Sieht dann meiner Meinung nach auch besser aus, als mit der Trackbar.
    Definiere eine linke und rechte Grenze, die im MouseMove überprüft werden. Und im MouseUp wird die Position an die Grenze gesetzt, die näher ist. (hier kann man dann auch einen Timer aktivieren, der den Button um einen kleinen Betrag in Richtung der Grenze verschiebt, um eine Art Animation zu erhalten)
    0
     

  3. Tut mir leid für meine Frage...


    Code:
    private void buttonSlider1_MouseDown(object sender, MouseEventArgs e)
            {
                move = true;
                rect.Y = e.Y;
                label1.Text = "MousePosition" + rect.X;
            }
    
            private void buttonSlider1_MouseMove(object sender, MouseEventArgs e)
            {
                if (move)
                {
                    buttonSlider1.Left += e.X - rect.X;
                    
                } 
            }
    
            private void buttonSlider1_MouseUp(object sender, MouseEventArgs e)
            {
                move = false;
            }
    So kann ich den Button nur horizontal verschieben.. aber wie stelle ich jetzt einen Bereich ein?... die rect.X ist jetzt natürlich nur die Maus Position über dem Button...

    hmmm

    Edit:
    Und bei meinem Code wird die Position erst bei MouseDown berechnet.. kann man das in "echtzeit" berechnen lassen?

    Edit2:
    Ich schätze man muss es mit einem Panel machen oder?
    Code:
    private void panel1_MouseDown(object sender, MouseEventArgs e)
            {
                move = true;
                panrect.X = e.X;
                panrect.Y = e.Y;
                
            }
    
            private void panel1_MouseMove(object sender, MouseEventArgs e)
            {
                if (move)
                {
                     posi = e.X - panrect.Left ;
                    
                }
                if (posi >= 120 && move != false)
                {
                    MessageBox.Show("Bla");
                }
                label2.Text = "MousePosition" + posi;
            }
    
            private void panel1_MouseUp(object sender, MouseEventArgs e)
            {
                move = false;
    
                if (posi < 120)
                {
                    posi = 0;
                }
    
                label2.Text = "MousePosition" + posi;
            }
    Ist das mal ein guter Ansatz?

    Ich weiss nicht wie ich von Anfang - Ende definieren soll.. also habe ich einfach 120 als zu erreichende Grösse genommen da 120 so ziemlich das Ende meines Panels ist.. und somit muss man über das ganze Panel sliden.

    Aber wie fügte ich jetzt den Button auf das Panel? so dass er immer mitrutscht.
    0
     

  4. Im Compact Framework haben Panel oder PictureBox die MouseDown/Move/Up events (Button also nicht).
    Man kann direkt eine PictureBox nehmen (einfach ein Bild dem Image Parameter zuweisen) und falls man in der MainForm eine PictureBox namens picSlider hat und die MouseMove/Up events folgendermassen implementieren:

    Code:
        public partial class MainForm : Form
        {
            const int SliderMargin = 20;
            int _minX;
            int _maxX;
    
            public MainForm()
            {
                InitializeComponent();
                _minX = SliderMargin;
                _maxX = ClientRectangle.Right - picSlider.Width - SliderMargin;
                picSlider.Left = _minX;
            }
    
            private void picSlider_MouseMove(object sender, MouseEventArgs e)
            {
                int newX = picSlider.PointToScreen(new Point(e.X, e.Y)).X;
                if (newX < _minX) newX = _minX;
                else if (newX > _maxX) newX = _maxX;
                picSlider.Left = newX;
            }
    
            private void picSlider_MouseUp(object sender, MouseEventArgs e)
            {
                picSlider.Left = (picSlider.Left < (_maxX + picSlider.Width - _minX) / 2) ? _minX : _maxX;
            }
        }
    sollte das in etwa funktionieren.
    Eigentlich erstellt man ein UserControl und dort kann man dann eine PictureBox (resp. ein Panel und in diesem einen Button) rein tun und hat dann die linke/rechte Grenze vom UserControl.
    0
     

  5. PictureBox und Panels haben die mouse events.. buttons nicht^^

    und ja ich hab als button auch ein UserControl.


    Edit:
    Wer lesen kann ist klar im Vorteil^^ sry

    Edit2:
    Wieso eigentlich?^^ Ich versuche eigentlich einen möglichst professionellen Weg zu erlernen^^ und nicht den einfachst möglichen.

    Ich bin einfach noch zu müde um deinen Code richtig zu analysieren^^

    Kann man einstellen dass der Punkt X NICHT der linke Ecken des PicBox ist? Bzw verhindern dass er so einen Sprung macht wenn man den "Button" am rechten Rand verschiebt?

    Und wenn ich die Applikation auf meinem TP2 teste dann verzieht sich die PictureBox ziemlich wenn ich sie bewege..
    0
     

  6. Verzieht sich?
    SizeMode der PictureBox auf StretchImage geändert?
    0
     

  7. Hi

    Ja sie verzieht sich.. aber nicht im gewollten Sinn sondern eher wie ein Lagg...

    Wenn ich sie schnell bewege seht es aus als würde es dauern bis die neue Position richtig geladen ist.. und die bewegung dazwischen wird einfach so ein "schweif"^^

    Ich hoff du verstehst was ich meine.

    PS:
    Gratulation zum 100sten Post
    0
     

  8. Danke, unglaublich wie schnell die Zeit vergeht!
    Nun, jetzt müssen wir das ändern! Es muss eine Art 'double buffering' her! Typischerweise zeichnet man all die Bilder in eine 'offscreen' Bitmap und dann nur diese Bitmap, um solches Flickern zu verhindern.
    Vorschlag: Den Threadtitel ändern zu 'Implementieren eines SliderButtons' oder einen neuen Thread starten.
    Dann können wir einen SliderButton implementieren. Sehe es im Moment so, dass dieser 'Button' eigentlich nur eine Klasse ist, die ein Bild, eine Position und eine linke und rechte Grenze hat und die events MouseDown/Move/Up der Mainform implementiert.
    0
     

  9. Vielen Dank für deine grosse Hilfe und Geduld^^

    Mag dumm sein aber wie ändere ich den Threadnamen?^^

    Edit: Habs^^
    0
     

  10. Und nun?^^

    Wie fangen wir hier an?
    0
     

  11. Habe mal etwas rumgeschaut und folgende zwei Projekte gefunden:
    iPhoneUI (Englisch)
    iPhone Slider (Englisch)
    Kannst diese als Basis nehmen oder gleich direkt in die Applikation einbauen.
    0
     

  12. Sind die beiden nicht auf VB.Net basierend?
    0
     

  13. Erstes in C#.net zweites in VB.net und freie Konvertierungstools gibt's auch.
    1
     

Ähnliche Themen

  1. opera mini als standardbrowser setzen!
    Von skunk im Forum Touch HD Tweaks
    Antworten: 25
    Letzter Beitrag: 15.01.2010, 21:24
  2. Hero als "kleiner Reaktor" --> SAR Wert!?
    Von Unregistriert im Forum HTC Hero
    Antworten: 4
    Letzter Beitrag: 27.09.2009, 22:32
  3. IE als Standart setzen / Opera hängt dauernd
    Von Zest im Forum Touch HD Anwendungsprogramme
    Antworten: 16
    Letzter Beitrag: 13.07.2009, 11:52
  4. HD screen als Bild in das Forum setzen?
    Von JamSam im Forum Touch HD Sonstiges
    Antworten: 1
    Letzter Beitrag: 02.02.2009, 22:41
  5. GIF animation als Hintergrund setzen?!
    Von Marceld im Forum HTC Touch Diamond
    Antworten: 4
    Letzter Beitrag: 02.09.2008, 21:07

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

slider programmieren

c# schieberegler

vb6 slider programmieren

c# slider programmieren

slider programmierung

c# sliderbutton windows formsslide touch programmieren windowsvb2010 iphone slidewp7 slider.value ohne eventc# slider anpassenpicture slider c# cfc# trackbar mit buttonc# apple slide buttonc# trackbar touchc# sliderc# button slidervb 2010 schieberegler programmierenslider wert wp7c programmierung eines schiebereglerssilder value bleib 0 touch

Stichworte