Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private void dgrid_planificacion_CellClick(object sender, DataGridViewCellEventArgs e)
- {
- //Obetengo las coordenadas de la celda seleccionada.
- Rectangle coordenada = dgrid_planificacion.GetCellDisplayRectangle(dgrid_planificacion.CurrentCell.ColumnIndex, dgrid_planificacion.CurrentCell.RowIndex, false);
- if (e.ColumnIndex > 1)
- {
- int ancho_grid, alto_grid, ancho_panel, alto_panel, ancho_celda, alto_celda;
- ancho_grid = dgrid_planificacion.Size.Width;
- alto_grid = dgrid_planificacion.Size.Height;
- ancho_panel = panel_detalle.Size.Width;
- alto_panel = panel_detalle.Size.Height;
- ancho_celda = coordenada.Location.X;
- alto_celda = coordenada.Location.Y;
- if (!Convert.ToString(dgrid_planificacion.CurrentRow.Cells[0].Value).Equals(""))
- {
- //Ezquina superior izquierda.
- if (( alto_panel + alto_celda ) < ( alto_grid ) && ( ancho_panel + ancho_celda ) < ancho_grid)
- {
- //El numero 14 es para indicarle la posicion que tendra el panel en el eje Y (comienzo de la celda)
- panel_detalle.Location = new Point(( ancho_celda + dgrid_planificacion.Location.X ),
- ( alto_celda + dgrid_planificacion.Location.Y ) + 14);
- panel_detalle.BringToFront(); //Para que el panel este por arriba del DatagridView Planificacion
- panel_detalle.Visible = true;
- }
- else
- //Esquina Superior Derecha
- if (( alto_panel + alto_celda ) < ( alto_grid ))
- {
- //El numero 2 es para controlar la sepacion del panel de la celda.
- panel_detalle.Location = new Point(( ancho_celda - ancho_panel ) + 33,
- ( coordenada.Bottom ) - 2);
- panel_detalle.BringToFront();
- panel_detalle.Visible = true;
- }
- else
- //Esquina Inferior Izquierda
- if (( coordenada.Bottom + alto_panel ) > ( alto_grid ) && ( ancho_panel + ancho_celda ) < ( ancho_grid ))
- {
- panel_detalle.Location = new Point(( ancho_celda + dgrid_planificacion.Location.X ),
- ( alto_celda - alto_panel ) + 1);
- panel_detalle.BringToFront();
- panel_detalle.Visible = true;
- }
- else //Esquina Inferior Derecha
- {
- //El numero 33 indicar el comienzo de la celda y mostrar el panel en esa posicion.
- panel_detalle.Location = new Point(( ancho_celda - ancho_panel ) + 33,
- ( alto_celda - alto_panel ));
- panel_detalle.BringToFront();
- panel_detalle.Visible = true;
- }
- }
- else
- panel_detalle.Visible = false;
- }
- }
Add Comment
Please, Sign In to add comment