Autor Beitrag
c#ler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176
Erhaltene Danke: 1

Win7 64Bit
C#, VBA, VS2013 Ultimate
BeitragVerfasst: Di 07.06.11 11:43 
Alle Tutorials oder beiträge, die ich zu dieser Thematik fand, funktionierten entweder nicht oder ich konnte Sie nicht umsetzen, weshalb ich etws hilfe von erfahrenen Kollegen benötige.

Ich arbeite mit:
- c#
- Visual Studio 2008
- .Net Framework 3.5
- Windows CE Gerät (.Net Compact-Framework 2.0)


Ich versuche die Mausposition zu ermitteln um ein Scrollen im Programm (per Touch) möglich zu machen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
public void Mouse(object sender, MouseEventArgs m)
{
   int startPoint;
   int x = MousePosition.X; //(m.X)
   int y = MousePosition.Y; //(m.Y)

   if(y > startPoint)
   {
      //Ich schätze mal hier muss ich die offset-Methode verwenden um zu scrollen
   }
}


Problem:

Ich muss einen Startpoint definieren (Ich brauche eine Funktion, die mir die aktuelle Mausposition ermittelt)
Hierfür habe ich es mit Rectangle und PointToScreen versucht, aber das wollte nicht richtig (ich schiebe es mal auf windows CE)

Vielen Dank
jonnysingh
Hält's aus hier
Beiträge: 1
Erhaltene Danke: 1



BeitragVerfasst: Mi 08.06.11 18:47 
Hallo c#ler,
ich hab folgendes verwenden um die Mausposition zu ermitteln, was bei mir sehr gut funktioniert:

ausblenden C#-Quelltext
1:
2:
3:
4:
      private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            textBox1.Text = string.Format("X:{0}, Y:{1}", e.X, e.Y);
        }


Hoffe, dass dies das richtige ist, was du suchst und/oder dir weiter hilfe

MfG
Jonny

Für diesen Beitrag haben gedankt: c#ler
c#ler Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 176
Erhaltene Danke: 1

Win7 64Bit
C#, VBA, VS2013 Ultimate
BeitragVerfasst: Do 09.06.11 11:35 
user profile iconjonnysingh hat folgendes geschrieben Zum zitierten Posting springen:
Hallo c#ler,
ich hab folgendes verwenden um die Mausposition zu ermitteln, was bei mir sehr gut funktioniert:

ausblenden C#-Quelltext
1:
2:
3:
4:
      private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            textBox1.Text = string.Format("X:{0}, Y:{1}", e.X, e.Y);
        }


Hoffe, dass dies das richtige ist, was du suchst und/oder dir weiter hilfe

MfG
Jonny


Naja...so richtig hilfreich ist es leider nicht.
Wenn ich deinen code richtig interpretiere übergibst du der Textbox - Parameter (y und x)....aber du ermittelst nichts...
Damit komm ich leider nicht weiter, aber trotzdem danke für den Versuch
thepaine91
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 763
Erhaltene Danke: 27

Win XP, Windows 7, (Linux)
D6, D2010, C#, PHP, Java(Android), HTML/Js
BeitragVerfasst: Do 09.06.11 12:09 
Du interpretierst den Code falsch. Form1_MouseMove ist ein Event welches auslöst sobald die Maus auf dem Formular bewegt wird. ^^ e.X (horizontal) und e.Y (vertikal) sind die Position der Maus.
Das ist doch eigentlich genau das was du willst.

Für diesen Beitrag haben gedankt: c#ler
norman2306
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 222
Erhaltene Danke: 16

Win XP, Win 7 64-Bit
C# 4.0 (VS2010)
BeitragVerfasst: Do 09.06.11 14:26 
Probiere es mal damit:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
bool mouseIsDown = false;

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
  mouseIsDown = true;
  pos_y = e.Y;
}

private void Form1_MouseUp(object sender, MouseEventArgs e)
{
  mouseIsDown = false;
}

int pos_y = 0;

private void Form1_MouseMove(object sender, MouseEventArgs e)        
{
  if(mouseIsDown)
  {                   
    int value = scrollbar1.Value + (e.Y - pos_y);
    scrollbar1.Value = scrollbar1.Value < scrollbar1.Minimum ? scrollbar1.Minimum :
                       scrollbar1.Value > scrollbar1.Maximum ? scrollbar1.Maximum :
                       value;
  }
}

Für diesen Beitrag haben gedankt: c#ler