none
datagridview et bouton RRS feed

  • Question

  • bonjour;

    quelqu'un sait comment faire pour ouvrir un fichier queconque à partir d'un bouton dans la datagridview.sachant que je choisie les fichiers affichés dans la datagrid à partir d'un combox. merci

    mardi 24 mai 2011 10:54

Réponses

  • Bonsoir

    qui peut le plus peut le moins

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Windows.Forms;
    using System.IO;
    using System.Collections;
    
    namespace WindowsApplication
    {
     public partial class Form1 : Form
     {
     public Form1()
     {
     InitializeComponent();
     }
    
     private void btnConnection_Click(object sender, EventArgs e)
     {
     FolderBrowserDialog dialog = new FolderBrowserDialog();
     DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn();
     buttonColumn.HeaderText = "Bouttons";
     fichierGrid.CellClick += new DataGridViewCellEventHandler(fichierGrid_CellClick);
     fichierGrid.Columns.Add("le chemin de votre fichier ici");
    
    
     fichierGrid.DataSource = ChargerFichiers(cheminDossier);
     }
    
     void fichierGrid_CellClick(object sender, DataGridViewCellEventArgs e)
     {
     DataGridView grid = (DataGridView)sender;
     if (e.ColumnIndex==0)
     {
     int index = e.RowIndex;
     string path = grid[4, index].Value.ToString();
     System.Diagnostics.Process.Start(path);
     }
     }
    
    
     public List<Fichier> ChargerFichiers(string repertoire)
     {
     DirectoryInfo dossier = new DirectoryInfo(repertoire);
     var requete = from element in dossier.GetFiles()
      select new Fichier
      {
      Nom = element.Name,
      Dossier = element.DirectoryName,
      Extension = element.Extension,
      Chemin = element.FullName
      };
      
     return requete.ToList();
     }
    
     }
    
     public class Fichier
     {
     public string Nom { get; set; }
     public string Dossier { get; set; }
     public string Extension { get; set; }
     public string Chemin { get; set; }
     }
    }

    Merci de marquer ce thread comme reponse le lien "Proposer comme reponse"

    The complexity resides in the simplicity Follow me at: http://smartssolutions.blogspot.com
    • Marqué comme réponse hajar80 jeudi 26 mai 2011 12:05
    mercredi 25 mai 2011 21:24

Toutes les réponses

  • Bonjours hajer

    Quel type de fichiers vous utilisez comme source. txt, excel, xml?


    The complexity resides in the simplicity Follow me at: http://smartssolutions.blogspot.com
    mardi 24 mai 2011 20:48
  • bonsoir;

    ma datagridview est rempli des informations concernant des fichiers pdf.donc je dois cliquer sur des boutons dans ma datagridview qui vont m'afficher les pdf de mon choix.j'ai trouvé le code pour un seul document mais moi j'ai un ensemble de pdf.merci de ton aide.

    mardi 24 mai 2011 22:04
  • les données se trouve dans une DataGridView je et cette derniere doit en quelque sorte rassemble au modele suivant

     

    =>  tu doit avoir 4  colonnes :

    1 - colonne contenant ID du fichier ( de preference qu'il sera invisible * visible = false)   - colonne de type text

    2- colonne contenant  le nom du fichier  - colonne de type text

    3- colonne contenant le chemin physique du fichier - colonne de type text

    4- colonne contenant le button qui va ouvrir le fichier - colonne de type button

     

    tu doit chercher sur internet comment remplir une DGV qui contient un button c tous

    dans l'evenement CellClick du DGV

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
     {
    //obtenir la ligne selectioné  
    int y = this.dataGridView1.CurrentCellAddress.Y;
    //obtenir la cellule selectioné 
    int x = this.dataGridView1.CurrentCellAddress.X;
    
     // ici on teste si la cellule cliqué et celle qui contient le button  
    if (dataGridView1.Columns[x].Name == "Nom de colonne qui contient le button")
      {
      System.Diagnostics.Process.Start(dataGridView1.Rows[y].Cells["col qui contient le chemin"].Value.ToString());
      }
      
     }
    
    
    

    • Proposé comme réponse MrH.Net mardi 24 mai 2011 23:22
    mardi 24 mai 2011 22:59
  • merci pour ce code;justement dans ma datagridview je n'ai pas une colonne qui contient le chemin des fichiers,donc que dois je faire à sa place??merci
    mercredi 25 mai 2011 10:23
  • Bonjours Hajer

    Conformement a ce que MrH.Net dit, j'ai ecrit un code qui fera l'affaire le voici. 

    note: Il faut nommer le gridview comme moi,a savoir fichierGrid

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Windows.Forms;
    using System.IO;
    using System.Collections;
    
    namespace WindowsApplication
    {
     public partial class Form1 : Form
     {
     public Form1()
     {
      InitializeComponent();
     }
    
     private void btnConnection_Click(object sender, EventArgs e)
     {
      FolderBrowserDialog dialog = new FolderBrowserDialog();
      string cheminDossier = string.Empty;
      if (dialog.ShowDialog()== System.Windows.Forms.DialogResult.OK)
      {
      cheminDossier = dialog.SelectedPath;
      }
    
      DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn();
      buttonColumn.HeaderText = "Bouttons";
      fichierGrid.CellClick += new DataGridViewCellEventHandler(fichierGrid_CellClick);
      fichierGrid.Columns.Add(buttonColumn);
    
    
      fichierGrid.DataSource = ChargerFichiers(cheminDossier);
     }
    
     void fichierGrid_CellClick(object sender, DataGridViewCellEventArgs e)
     {
      DataGridView grid = (DataGridView)sender;
      if (e.ColumnIndex==0)
      {
      int index = e.RowIndex;
      string path = grid[4, index].Value.ToString();
      System.Diagnostics.Process.Start(path);
      }
     }
    
    
     public List<Fichier> ChargerFichiers(string repertoire)
     {
      DirectoryInfo dossier = new DirectoryInfo(repertoire);
      var requete = from element in dossier.GetFiles()
        select new Fichier
        {
        Nom = element.Name,
        Dossier = element.DirectoryName,
        Extension = element.Extension,
        Chemin = element.FullName
        };
       
      return requete.ToList();
     }
    
     }
    
     public class Fichier
     {
     public string Nom { get; set; }
     public string Dossier { get; set; }
     public string Extension { get; set; }
     public string Chemin { get; set; }
     }
    }
    
    
    Ce code ouvre tout les fichiers au niveau d'un repertoire.  Bonne chance

     


    The complexity resides in the simplicity Follow me at: http://smartssolutions.blogspot.com

    mercredi 25 mai 2011 16:55
  • merci pour ta réponse mais ce que je veux c'est ouvrir automatiquement le pdf conçerné à partir d'un bouton sachant que son theme et titre sont déja affichés dans la datagridview.pas la peine de choisir le répértoire.merci encore

    mercredi 25 mai 2011 18:34
  • Bonsoir

    qui peut le plus peut le moins

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Linq;
    using System.Windows.Forms;
    using System.IO;
    using System.Collections;
    
    namespace WindowsApplication
    {
     public partial class Form1 : Form
     {
     public Form1()
     {
     InitializeComponent();
     }
    
     private void btnConnection_Click(object sender, EventArgs e)
     {
     FolderBrowserDialog dialog = new FolderBrowserDialog();
     DataGridViewButtonColumn buttonColumn = new DataGridViewButtonColumn();
     buttonColumn.HeaderText = "Bouttons";
     fichierGrid.CellClick += new DataGridViewCellEventHandler(fichierGrid_CellClick);
     fichierGrid.Columns.Add("le chemin de votre fichier ici");
    
    
     fichierGrid.DataSource = ChargerFichiers(cheminDossier);
     }
    
     void fichierGrid_CellClick(object sender, DataGridViewCellEventArgs e)
     {
     DataGridView grid = (DataGridView)sender;
     if (e.ColumnIndex==0)
     {
     int index = e.RowIndex;
     string path = grid[4, index].Value.ToString();
     System.Diagnostics.Process.Start(path);
     }
     }
    
    
     public List<Fichier> ChargerFichiers(string repertoire)
     {
     DirectoryInfo dossier = new DirectoryInfo(repertoire);
     var requete = from element in dossier.GetFiles()
      select new Fichier
      {
      Nom = element.Name,
      Dossier = element.DirectoryName,
      Extension = element.Extension,
      Chemin = element.FullName
      };
      
     return requete.ToList();
     }
    
     }
    
     public class Fichier
     {
     public string Nom { get; set; }
     public string Dossier { get; set; }
     public string Extension { get; set; }
     public string Chemin { get; set; }
     }
    }

    Merci de marquer ce thread comme reponse le lien "Proposer comme reponse"

    The complexity resides in the simplicity Follow me at: http://smartssolutions.blogspot.com
    • Marqué comme réponse hajar80 jeudi 26 mai 2011 12:05
    mercredi 25 mai 2011 21:24
  • tu peux nous dire d'ou tu charge ton datagridview par ce qu'on doit savoir le chemin  de chaque fichier pdf pour que tu peut l'ouvrir son demander a l'utilisateur le chemin
    jeudi 26 mai 2011 09:53
  • bonjour Mrh.net;laire

    je charge ma datagridview à partir des combox qui sont remplis à leur tour de la base de données.Quand je choisie  le theme ,le titre...dans les comboxs.ma datagridview est rempli à partir de mes choix dans les combobox.les pdf sont stockés dans un document nommé PDF.j'éspère avoir été claire.s'il ya des question n'ésitez pas.merci

    jeudi 26 mai 2011 12:01