1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

C# frage

Discussion in 'Programmieren' started by Aequitas, May 30, 2008.

Thread Status:
Not open for further replies.
  1. Aequitas

    Aequitas Kbyte

    Hallo ich hätte eine frage was muss ich schreiben um wenn ich will dass sich eine pictureBox mit der maus mitbewegt???
    danke im voraus
    lg
     
  2. RealC++

    RealC++ Kbyte

    Bitte:
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                pictureBox1.Location=e.Location;
            }
        }
    }
     
  3. Aequitas

    Aequitas Kbyte

    Dankeschön
    nur hab ich jetzt dass problem dass sich die box nicht wirklich flüssig bewegt! sie bewegt sich öfters mehrere sekunden nicht und hüpft dann zum mauszeiger!
    kann man das irgendtwie machen das sich die box flüssig mit dem zeiger bewegt??
    lg Julian
     
  4. cod3r

    cod3r Byte

    So?
    Code:
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Test
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                listBox1.Location = e.Location;
            }
    
            private void listBox1_MouseMove(object sender, MouseEventArgs e)
            {
                listBox1.Location = new Point(e.Location.X + listBox1.Location.X, e.Location.Y + listBox1.Location.Y);
            }
        }
    }
    
     
  5. Aequitas

    Aequitas Kbyte

    Naja funktioniert auch nicht wirklich das objekt springt hin und wieder vom mauszeiger weg dann flimmert die grafik extrem usw!!:heul:
    kann ich dass programm + code irgentwie hier hochladen??
    lg Julian
     
  6. cod3r

    cod3r Byte

    Du hast wahrscheinlich vergessen, das Ereignis zuzuweisen. Naja, dann eben Codeseitig:
    Code:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace Test
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                listBox1.MouseMove += new MouseEventHandler(listBox1_MouseMove);
            }
    
            private void Form1_MouseMove(object sender, MouseEventArgs e)
            {
                listBox1.Location = e.Location;
            }
    
            private void listBox1_MouseMove(object sender, MouseEventArgs e)
            {
                listBox1.Location = new Point(e.Location.X + listBox1.Location.X, e.Location.Y + listBox1.Location.Y);
            }
        }
    }
    
    Bei mir funktioniert das einwandfrei...
     
  7. Aequitas

    Aequitas Kbyte

    Naj hat eigentlich nichts geholfen!!
    :(
    noch immer ganz gleich!
    lg Julian
     
  8. cod3r

    cod3r Byte

    Ich hab jetzt mal meinen Source-Code angehängt (VS 2008)...
    Normalerweise passiert das, da das Form_MouseMove-Event nicht ausgeführt wird, wenn man die Maus über der ListBox hat und es deswegen "ruckelt", wenn man die Maus wieder aus der ListBox draussen hat. Wenn man das ListBox-MouseMove-Event einbezieht und die Koordinaten für dieses dazurechnet, bekommt man die neuen ListBox-Koordinaten...
     

    Attached Files:

  9. Aequitas

    Aequitas Kbyte

    macht es einen unterschied wenn ich eine picturebox anstatt einer listbox habe???
    und ich will für die y koordinate einen fixen wert!!
    lg
     
  10. Aequitas

    Aequitas Kbyte

    und dass ganze bewegt sich in einer groupbox falls dass relevant ist!!
    lg
     
  11. Aequitas

    Aequitas Kbyte

    Ich hab das programm mal hier hochgeladen schaut es euch an wenn ihr lust hab vl findet ihr ja den fehler!!
    lg Julian
     

    Attached Files:

  12. cod3r

    cod3r Byte

    Ganz klare Sache, du hast das MouseMove-Event der GroupBox vergessen...
    Code:
            void groupBox1_MouseMove(object sender, MouseEventArgs e)
            {
                m_pbKorb.Left = e.X;
            }
    
            private void groupBox1_Enter(object sender, EventArgs e)
            {
                m_pbKorb.MouseMove += new MouseEventHandler(m_pbKorb_MouseMove);
                groupBox1.MouseMove += new MouseEventHandler(groupBox1_MouseMove);
            }
    
    Und wenn dein Korb in der Mitte sein soll (so wie ich's bei nem Spiel machen würde):
    Code:
            private void m_pbKorb_MouseMove(object sender, MouseEventArgs e)
            {
                m_pbKorb.Location = new Point(e.Location.X + m_pbKorb.Location.X - m_pbKorb.Width / 2, 450);
            }
    
            void groupBox1_MouseMove(object sender, MouseEventArgs e)
            {
                m_pbKorb.Left = e.X - m_pbKorb.Width / 2;
            }
    
            private void groupBox1_Enter(object sender, EventArgs e)
            {
                m_pbKorb.MouseMove += new MouseEventHandler(m_pbKorb_MouseMove);
                groupBox1.MouseMove += new MouseEventHandler(groupBox1_MouseMove);
            }
    
    Anmk: Es reicht, die Events einmal zu setzen (kann beim Programmstart geschehen), bzw. du kannst die Events auch über vs setzen (bei den Eigenschaften gibt es einen Schalter "Ereignissse".
     
    Last edited: Jun 3, 2008
  13. Aequitas

    Aequitas Kbyte

    Danke funktioniert jetzt super!:)
    lg
     
Thread Status:
Not open for further replies.

Share This Page