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 originalstring[] rutas;
int cont = 0;
DialogResult dr = this.openFileDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK)
{
rutas = new string[openFileDialog1.FileNames.Length];
// Read the files
foreach (String file in openFileDialog1.FileNames)
{
// Create a PictureBox.
try
{
rutas[cont++] = file;
//PictureBox pb = new PictureBox();
/*Image loadedImage = Image.FromFile(file);
pb.Height = loadedImage.Height;
pb.Width = loadedImage.Width;
pb.Image = loadedImage;
flowLayoutPanel1.Controls.Add(pb);*/
}
catch (System.Security.SecurityException ex)
{
// The user lacks appropriate permissions to read files, discover paths, etc.
MessageBox.Show("Security error. Please contact your administrator for details.\n\n" +
"Error message: " + ex.Message + "\n\n" +
"Details (send to Support):\n\n" + ex.StackTrace
);
}
catch (Exception ex)
{
// Could not load the image - probably related to Windows file system permissions.
MessageBox.Show("Cannot display the image: " + file.Substring(file.LastIndexOf('\\'))
+ ". You may not have permission to read the file, or " +
"it may be corrupt.\n\nReported error: " + ex.Message);
}
}
//rutas.Remove(rutas.Length - 2);
//dataGridView1.Rows.Clear();
//int total2 = total + rutas.Count();
for (int i = 0; i< rutas.Count(); i++)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[total].Cells[0].Value = rutas[i];
dataGridView1.Rows[total++].Cells[1].Value = "Procesando...";
}
openFileDialog1.Dispose();
}