private void button1_Click_1(object sender, EventArgs e) { // Aquí se crea el panel que contendrá todos los datos Panel panelImg = new Panel { Size = new Size(140, 150), BackColor = Color.LightSkyBlue, Cursor = Cursors.Hand }; // Label que contiene el nombre del empleado Label labelN = new Label { Text = "Josue Manuel Romero Canaan", ForeColor = Color.Black, AutoSize = false, TextAlign = ContentAlignment.MiddleCenter }; // Nombre del trabajo en el que está participando el empleado Label labelT = new Label { Text = " Portada de libro: El soñador", ForeColor = Color.Black, AutoSize = false, TextAlign = ContentAlignment.MiddleCenter, }; // Nombre del proyecto en el que está participando el empleado Label labelP = new Label { Text = "El soñador", ForeColor = Color.Black, AutoSize = false, TextAlign = ContentAlignment.MiddleCenter, }; // Código para cortar una imagen y dejarla en círculo int radio = 18, x = 23, y = 24; Bitmap tmp = new Bitmap(2 * radio, 2 * radio); Graphics g = Graphics.FromImage(tmp); g.TranslateTransform(tmp.Width / 2, tmp.Height / 2); GraphicsPath path = new GraphicsPath(); path.AddEllipse(0 - radio, 0 - radio, 2 * radio, 2 * radio); Region region = new Region(path); g.SetClip(region, CombineMode.Replace); Bitmap bmp = new Bitmap("C:\\Users\\tote_\\Desktop\\ImagenLol.jpg"); //Ruta de la imagen g.DrawImage(bmp, new Rectangle(-radio, -radio, 2 * radio, 2 * radio), new Rectangle(x - radio, y - radio, 2 * radio, 2 * radio), GraphicsUnit.Pixel); PictureBox cuadro = new PictureBox(); cuadro.Size = new Size(80, 80); cuadro.SizeMode = PictureBoxSizeMode.StretchImage; cuadro.Image = tmp; cuadro.Location = new Point(27, 10); // Creación del panel donde se encontrarán todos los elementos PanelJosue panel = new PanelJosue(panelImg, cuadro, labelN, labelT, labelP) { Size = new Size(140, 150), Cursor = Cursors.Hand }; // Se añade el panel ya preparado al carrusel flowLayoutPanel1.Controls.Add(panel); }
private void MostrarEmpleados() { List <int> id = new List <int>(); String nombre = ""; String trabajo = ""; String proyecto = ""; String ruta = ""; // Realizo la consulta para obtener los ID's de los empleados activos co.Comando("SELECT DISTINCT E.ID " + "FROM Empleado AS E WHERE E.ID IN (SELECT ET.EmpleadoID FROM Empleado_Trabajos as ET, Trabajos as T " + "WHERE T.FechaFin > CURDATE());"); // Guardo en un arreglo los ID's while (co.LeerRead) { id.Add(co.Leer.GetInt32(0)); } if (id.Count == 0) { return; } else { for (int i = 0; i < id.Count; i++) { co.Comando("SELECT DISTINCT E.Nombre as NombreTrabajador, T.Nombre as NombreTrabajo, E.imagenEmpleado as Imagen " + "FROM Empleado as E, Trabajos as T, Empleado_Trabajos as ET " + "WHERE (E.ID = " + id[i] + " AND E.ID = ET.EmpleadoID AND ET.TrabajosID = T.ID) " + "GROUP BY E.Nombre;"); if (co.LeerRead) { // Se guardan el nombre y trabajo en el que participa el empleado en cuestión nombre = co.Leer.GetString(0); trabajo = co.Leer.GetString(1); ruta = co.Leer.GetString(2); } //if (ruta == null || ruta.Equals("")) co.Comando("SELECT P.Nombre " + "FROM proyectos AS P, Trabajos AS T " + "WHERE T.Nombre = '" + trabajo + "' AND T.ProyectosID = P.ID;"); if (co.LeerRead) { // Se guardan el nombre del proyecto si es que hay uno asociado proyecto = co.Leer.GetString(0); } else { proyecto = "No hay proyecto asociado"; } // Aquí se crea el panel que contendrá todos los datos Panel panelImg = new Panel { Size = new Size(140, 150), BackColor = Color.LightSkyBlue, Cursor = Cursors.Hand }; // Label que contiene el nombre del empleado Label labelN = new Label { Text = nombre, ForeColor = Color.Black, AutoSize = false, TextAlign = ContentAlignment.MiddleCenter }; // Nombre del trabajo en el que está participando el empleado Label labelT = new Label { Text = trabajo, ForeColor = Color.Black, AutoSize = false, TextAlign = ContentAlignment.MiddleCenter, }; // ------------------------------- // ------------------------------- // Nombre del proyecto en el que está participando el empleado Label labelP = new Label { Text = proyecto, ForeColor = Color.Black, AutoSize = false, TextAlign = ContentAlignment.MiddleCenter, }; // ------------------------------- //-------------------------------- // Código para cortar una imagen y dejarla en círculo int radio = 110, x = 135, y = 135; Bitmap tmp = new Bitmap(2 * radio, 2 * radio); Graphics g = Graphics.FromImage(tmp); g.TranslateTransform(tmp.Width / 2, tmp.Height / 2); GraphicsPath path = new GraphicsPath(); path.AddEllipse(0 - radio, 0 - radio, 2 * radio, 2 * radio); Region region = new Region(path); g.SetClip(region, CombineMode.Replace); Bitmap bmp; try { bmp = new Bitmap(ruta); //Ruta de la imagen }catch (Exception e) { ruta = Path.Combine(Application.StartupPath, "sin foto.png"); bmp = new Bitmap(ruta); //Ruta de la imagen en caso de error } g.DrawImage(bmp, new Rectangle(-radio, -radio, 2 * radio, 2 * radio), new Rectangle(x - radio, y - radio, 2 * radio, 2 * radio), GraphicsUnit.Pixel); PictureBox cuadro = new PictureBox(); cuadro.Size = new Size(80, 80); cuadro.Image = tmp; cuadro.SizeMode = PictureBoxSizeMode.StretchImage; cuadro.Location = new Point(27, 10); // Creación del panel donde se encontrarán todos los elementos PanelJosue panel = new PanelJosue(panelImg, cuadro, labelN, labelT, labelP) { Size = new Size(140, 150), Cursor = Cursors.Hand }; // label1 = panel.labelNombre; ajustarLabels(); label1 = panel.labelTrabajo; ajustarLabels(); label1 = panel.labelProyecto; ajustarLabels(); // // Se añade el panel ya preparado al carrusel flowLayoutPanel1.Controls.Add(panel); } } }