• Sábado 18 de Abril de 2026, 22:58

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - yoko911

Páginas: [1]
1
C# / Coordenadas dentro de las formas [WinForms]
« en: Martes 26 de Octubre de 2010, 09:09 »
He aquie l dilema, puse una forma cualquiera, agrego un boton, al evento MouseEnter del boton le agrego el siguiente cdigo

Código: C#
  1. private void btncomponente_MouseEnter(object sender, EventArgs e)
  2.         {
  3.            
  4.             //coordenadas
  5.             Point xy = new Point(Cursor.Position.X, Cursor.Position.Y);
  6.             Point raton = new Point(this.PointToClient(xy).X, this.PointToClient(xy).Y);
  7.  
  8.             Point OrigenBtn = new Point(btncomponente.Location.X, btncomponente.Location.Y);
  9.             //Puntos Basicos del boton
  10.             Point IzqSup = new Point(OrigenBtn.X, OrigenBtn.Y);
  11.             Point DerInf = new Point(OrigenBtn.X + btncomponente.Height, OrigenBtn.Y + btncomponente.Width);
  12.  
  13.             if (raton.X >= IzqSup.X && raton.X < IzqSup.X + 5)
  14.             {
  15.                 btncomponente.SetBounds(btncomponente.Left + 10, btncomponente.Top,
  16.                 btncomponente.Width, btncomponente.Height);
  17.                 //Mover botno derecha 10px
  18.             }
  19.             if (raton.X > DerInf.X - 5 && raton.X <= DerInf.X)
  20.             {
  21.                 btncomponente.SetBounds(btncomponente.Left - 10, btncomponente.Top,
  22.                 btncomponente.Width, btncomponente.Height);
  23.                 //Mover botno IZQUIERDA 10px
  24.             }
  25.             if (raton.Y >= IzqSup.Y && raton.Y < IzqSup.Y + 5)
  26.             {
  27.                 btncomponente.SetBounds(btncomponente.Left , btncomponente.Top + 10,
  28.                 btncomponente.Width, btncomponente.Height);
  29.                 //Mover botno ABAJO 10px
  30.             }
  31.             if (raton.Y > DerInf.Y - 5 && raton.Y <= DerInf.Y)
  32.             {
  33.                 btncomponente.SetBounds(btncomponente.Left, btncomponente.Top - 10,
  34.                                         btncomponente.Width, btncomponente.Height);
  35.                 //Mover botno ARRIBA 10px
  36.             }
  37.  
  38.         }
  39.  

el codigo hace que el boton "huya" del cursor y que no le puedas dar click, claro a menos q s eas rapido, el problema entra en el momento que
el boton sale de la forma, quiero agregar codigo para q si el boton sale por la izquierda aparesca en la derecha y asi.. el problema son las coordenadas ia trate con this.Location.x,this.Location.y pero me dan coordenadas mui raras, cabe mencionar que converti las coordenads del punter de coordenadas de pantalla (scree) a cliente, la verdad nose mui bien q signifique pero funciono mi programa,
a alguna perosna que sepa como modificar las coordenadas o coomo obtener coordenadas del la forma,
Gracias...

Páginas: [1]