C sharp - Posicionar ToolWindow relativo a un control

 
Vista:

Posicionar ToolWindow relativo a un control

Publicado por Enmanuel (3 intervenciones) el 22/04/2010 16:49:21
Hola a todos. Estoy tratando de integrar a una aplicacion Winforms en C# un Tool window (una ventanita flotante para listar elementos). Lo que necesito es mostrar la ventanita sobre el formulario pero en una posicion que coincida con el control que invoca la accion... entonces aqui viene el problema: la propiedad Location de cada control solo me da la posicion relativa del control con relacion al contenedor (en este caso el formulario), entonces la vuelta que estoy utilizando es esta:

En el metodo Show del tool window hago:

Point absCoord = source.PointToScreen(source.Location);
// source es la referencia del control que pasa la accion
this.Location = this.PointToClient(absCoord);
base.Show();

Basicamente lo que estoy "intentando" es capturar la posicion absoluta del control y utilizar esa posicion absoluta para convertirla de nuevo a posicion relativa al owner del tool window para definir la ubicacion. Por alguna razon funciona a medias la ubicacion que resulta es muy cercana a la ubicacion del control pero se pierde por un margen uqe varia!!

si alguien ha tenido una tarea similiar agradeceria la orientacion.. gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Posicionar ToolWindow relativo a un control

Publicado por Enmanuel (3 intervenciones) el 23/04/2010 18:21:19
Aqui esta la forma de hacerlo:

Point origen_control = source.PointToScreen(new Point(0,0));
this.Location = new Point(origen_control.X, origen_control.Y + source.Height)
base.Show();

El snippet me lo corrigio alguien en StackOverflow.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar