Ver Mensaje Individual
  #8 (permalink)  
Antiguo 07/01/2011, 23:19
LOD_Fredy
 
Fecha de Ingreso: abril-2009
Mensajes: 341
Antigüedad: 15 años
Puntos: 3
Respuesta: Ayuda para crear un subidor de archivos (imagenes) en C#

Ya que sigo sin saber como arrastrar y soltar imagenes desde explorador de windows hacia el datagridview y agregar de esta forma la ruta de las imagenes, estoy tratando de mejorar lo mas posible la funcion abrir del openfiledialog.

Edito: boton si y no para borrar puesto, problema de renglones en blanco solucionado, sin embargo surgio otro problema.

Hice que al abrir imagenes con el openfile me agregue los renglones de las imagenes abiertas por lo que se forma una lista con imagfenes en estado subida y procesando, el problema es que al eliminar algun renglon y querer abrir mas imagenes, me marca que el indice esta fuera del alcance marcando o que el indice es menor a cero o mayor al tamaño del arreglo, el detalle es que lo marca en la variable i que uso en el for para recorrer el arreglo que contiene las rutas de los archivos recien abiertos. Dejo esa parte del codigo para ver si me dan solucion antes de que la encuentre.

Código C++:
Ver original
  1. string[] rutas;
  2.             int cont = 0;            
  3.             DialogResult dr = this.openFileDialog1.ShowDialog();
  4.             if (dr == System.Windows.Forms.DialogResult.OK)
  5.             {
  6.                 rutas = new string[openFileDialog1.FileNames.Length];
  7.                 // Read the files
  8.                 foreach (String file in openFileDialog1.FileNames)
  9.                 {
  10.                     // Create a PictureBox.
  11.                     try
  12.                     {
  13.                         rutas[cont++] = file;
  14.                         //PictureBox pb = new PictureBox();
  15.                         /*Image loadedImage = Image.FromFile(file);                
  16.                         pb.Height = loadedImage.Height;
  17.                         pb.Width = loadedImage.Width;
  18.                         pb.Image = loadedImage;
  19.                         flowLayoutPanel1.Controls.Add(pb);*/
  20.                     }
  21.                     catch (System.Security.SecurityException ex)
  22.                     {
  23.                         // The user lacks appropriate permissions to read files, discover paths, etc.
  24.                         MessageBox.Show("Security error. Please contact your administrator for details.\n\n" +
  25.                         "Error message: " + ex.Message + "\n\n" +
  26.                         "Details (send to Support):\n\n" + ex.StackTrace
  27.                         );
  28.                     }
  29.                     catch (Exception ex)
  30.                     {
  31.                         // Could not load the image - probably related to Windows file system permissions.
  32.                         MessageBox.Show("Cannot display the image: " + file.Substring(file.LastIndexOf('\\'))
  33.                         + ". You may not have permission to read the file, or " +
  34.                         "it may be corrupt.\n\nReported error: " + ex.Message);
  35.                     }
  36.                 }
  37.                 //rutas.Remove(rutas.Length - 2);
  38.                 //dataGridView1.Rows.Clear();
  39.                 //int total2 = total + rutas.Count();
  40.                 for (int i = 0; i< rutas.Count(); i++)
  41.                 {
  42.                     dataGridView1.Rows.Add();
  43.                     dataGridView1.Rows[total].Cells[0].Value = rutas[i];
  44.                     dataGridView1.Rows[total++].Cells[1].Value = "Procesando...";
  45.                 }
  46.                 openFileDialog1.Dispose();
  47.  
  48.             }

Última edición por LOD_Fredy; 08/01/2011 a las 01:37