none
Open File from a Cell in DatagridView using C# RRS feed

  • Debate general

  • Hi,

    On my desktop aplication I'm trying to open a file.

    I`d like to do it just by clicking on the contents of a cell in a datagridview with file`s path stored on a string like "c:\Control\Borrar.txt" but nothing is happening.

    Can anyone, please, help me? I'm just starting to write code seriously and I need some help. I paste a piece of code of what I did working on C# in VS Express 2013 for desktop applications.

    Thanks on advance.


    private void dgv_EPIs_CellContentClick(object sender, DataGridViewCellEventArgs e)
    
    {
    
    int i = dgv_EPIs.CurrentCellAddress.X;
    
    if (dgv_EPIs.Columns[i].HeaderText == "Registro")
    
    {
    
    OpenFileDialog archivo = new OpenFileDialog();
    
    archivo.FileName = dgv_EPIs.CurrentCell.Value.ToString();
    
    archivo.OpenFile();
    
    }
    
    }

    SPANISH TRANSLATION (just for improve opportunities of receive any answer):

    En una aplicación de escritorio estoy intentando, cuando aprieto el contenido de una celda de un DatagridView que contiene la ruta del archivo en una cadena ("c:\Control\Borrar.txt"),abrir un archivo   pero no ocurre nada.

    ¿Me puede alguien aclarar porque pasa esto, por favor?

    Estoy creando el codigo que pego abajo en C# y con Visual Studio Express 2013

    Saludos y gracias de antemano.

    • Editado Bufalo_Paciente jueves, 15 de enero de 2015 11:05 Translation to English
    • Tipo cambiado Bufalo_Paciente jueves, 15 de enero de 2015 11:06 improve possibilities to receive any answer
    viernes, 9 de enero de 2015 14:58

Todas las respuestas

  • Hola,

    Finalmente solvente el tema de la siguiente forma por si a alguien le puede ayudar:

    private void dgv_EPIs_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                int i = dgv_EPIs.CurrentCellAddress.X;
                if (dgv_EPIs.Columns[i].HeaderText == "Registro")
                {
                    string cad = dgv_EPIs.CurrentCell.Value.ToString();
                    int longi = cad.LastIndexOf("\\");
                    string ruta = cad.Substring(0, longi);
                    string arch = cad.Substring(longi + 1);
                    OpenFileDialog n = new OpenFileDialog();
                    n.InitialDirectory = ruta;
                    n.FileName = arch;
                    if (n.ShowDialog() != DialogResult.Cancel)
                    {
                            Process.Start(n.FileName);
                    }
                }

    No abro el archivo directamente como quería al principio pero si que voy a parar a la carpeta con el archivo y allí lo selecciono y lo abro aunque sea un poco mas engorroso.

    No me salía nada porque parece ser que faltaba la línea de "Process.Sart...".

    Saludos,

    Miguel.

    lunes, 2 de marzo de 2015 10:57