Stack Overflow en español Asked by Javier Aceves on January 4, 2022
Tengo un problema con un código para hacer que mi mouse se mueva dentro de un panel de 640×480, lo que pasa es esto tengo un código sobre como mover el cursor con coordenadas que extrae de dos archivos de texto.
Al presionar el boton este mueve el mouse pero lo que pasa es que lo mueve por encima del panel en donde tengo contemplado el movimiento, eh leído que hay una forma de usar algo llamado PointToClient
y el PointToScreen
pero no obtuve resultados.
Dejo coordenadas para probar:
357
336
338
343
357
263
257
246
276
124
133
131
127
107
76
-88
-90
-105
public void cursor_track_Click(object sender, EventArgs e)
{
List<string> linesX = File.ReadLines(@"C:EyeMatrisCoordenadasCoordenadasX.txt").ToList();
List<string> linesY = File.ReadLines(@"C:EyeMatrisCoordenadasCoordenadasY.txt").ToList();
List<Point> points = new List<Point>();
for(int i = 0; i< linesX.Count; i++)
{
Point p = new Point(int.Parse(linesX[i]), int.Parse(linesY[i]));
points.Add(p);
}
foreach (var point in points) {
//resolution es mi panel de 640x480
resolution.PointToScreen(Cursor.Position = new Point(point.X, point.Y));
}
}
Muestro el código y así podrás comparar lo que haces mal en el tuyo:
public void cursor_track_Click(object sender, EventArgs e)
{
List<string> linesX = File.ReadLines(@"C:EyeMatrisCoordenadasCoordenadasX.txt").ToList();
List<string> linesY = File.ReadLines(@"C:EyeMatrisCoordenadasCoordenadasY.txt").ToList();
for(int i = 0; i < linesX.Count; i++)
{
Point point = new Point(int.Parse(linesX[i]), int.Parse(linesY[i]));
// Generamos el punto al que queremos se mueva el cursor,
// teniendo en cuenta las coordenadas del panel.
Point miPunto = new Point(point.X + resolution.Left,
point.Y + resolution.Top);
// resolution es mi panel de 640x480
// ** resolution.PointToScreen(Cursor.Position = new Point(point.X, point.Y));
Cursor.Position = this.PointToScreen(miPunto);
}
}
Observa que te puedes ahorrar la lista de puntos y hacerlo todo en un único bucle. Y mira que tú ya establecías la posición del cursor, pero sin conversión, luego lo que hacías era convertirlo pero sin establecerlo.
Lo correcto es transformar la coordenada de miPunto y luego asignar el valor obtenido a la posición del cursor.
Answered by Antonio S.F. on January 4, 2022
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP