private void pegarExcel(object sender, KeyEventArgs e)
 {
     if (e.Control && e.KeyCode == Keys.V)
     {
         string formato   = DataFormats.CommaSeparatedValue;
         object contenido = Clipboard.GetData(formato);
         if (contenido != null && contenido is MemoryStream)
         {
             byte[] buffer;
             using (MemoryStream ms = (MemoryStream)contenido) buffer = ms.ToArray();
             string         lista       = Encoding.UTF8.GetString(buffer).Replace("\r\n", ";");
             string[]       data        = lista.Split(';');
             PropertyInfo[] propiedades = lbeProducto[0].GetType().GetProperties();
             if ((data.Length - 1) % propiedades.Length == 0)
             {
                 beProducto   obeProducto = null;
                 PropertyInfo propiedad;
                 int          c    = 0;
                 Type         tipo = null;
                 while (c < data.Length - 1)
                 {
                     for (int i = 0; i < propiedades.Length; i++)
                     {
                         if (i == 0)
                         {
                             obeProducto = new beProducto();
                         }
                         propiedad = obeProducto.GetType().GetProperty(propiedades[i].Name);
                         tipo      = propiedad.PropertyType;
                         propiedad.SetValue(obeProducto, Convert.ChangeType(data[c], tipo));
                         if (i == propiedades.Length - 1)
                         {
                             lbeProducto.Add(obeProducto);
                         }
                         c++;
                     }
                 }
                 dgvProducto.DataSource = null;
                 dgvProducto.DataSource = lbeProducto;
             }
             else
             {
                 MessageBox.Show("Numero de columnas a copiar del Excel y la Grilla deben ser iguales");
             }
         }
         else
         {
             MessageBox.Show("No hay un rango de celdas a copiar");
         }
     }
 }
        private void cargarProductos(object sender, EventArgs e)
        {
            lbeProducto = new List <beProducto>();
            Random     oRandom = new Random();
            beProducto obeProducto;

            for (int i = 1; i <= 10; i++)
            {
                obeProducto            = new beProducto();
                obeProducto.IdProducto = i;
                obeProducto.Nombre     = String.Format("Producto {0}", i);
                obeProducto.Precio     = oRandom.Next(100) + 10;
                obeProducto.Stock      = (short)(oRandom.Next(10) + 1);
                lbeProducto.Add(obeProducto);
            }
            dgvProducto.DataSource = lbeProducto;
        }