none
passer des controls en paramêtre RRS feed

  • Question

  • Bonjour,

    J’utilise une datagridview, et des infos stockees dans un xml.

    loadFile() me permet de lire ces infos, afin de créer mes colomns de datagrid.

    Tout fonctionne.

     

    Ce que je voudrai, c’est mettre l’appel de création de la table ( departmentTable(paramètres ... ) ) dans une DLL afin de l'utiliser en général, mais, je n’arrive pas à gérer la datagrid pour pouvoir appeler cette fonction pour n’importe quel datagrid.

     

    Mon code ci-dessous :

     

    private bool loadFile(string _myFile)

    {

        bool readOK = false ;

        string sName, sHeader, sVisible, sWidth, sAlignment, sColumnType, sDBcolumn, sReadOnly;

        XmlTextReader reader = new XmlTextReader (_myFile);

        while (reader.Read())

        {

            if (reader.Name == "Data" )

            {

                sName = reader.GetAttribute("ColumnName" );

                sColumnType = reader.GetAttribute("Columntype" );

                sHeader = reader.GetAttribute("HeaderText" );

                sVisible = reader.GetAttribute("Visible" );

                sWidth = reader.GetAttribute("Width" );

                sAlignment = reader.GetAttribute("Alignment" );

                 sReadOnly = reader.GetAttribute("ReadOnly" );

                //

                departmentTable(sColumnType, sName, sHeader, sVisible, sWidth, sAlignment);

                if (!readOK) readOK = true ;

            }

        }

     

        return readOK;

    }

     

    private void departmentTable(string _cType, string _cName, string _cHeader, string _cVisible, string _cWidth, string _cAlignment)

    {

        //DataGridViewComboBoxColumn comboColumn;

        DataGridViewTextBoxColumn textboxColumn;

        textboxColumn = new DataGridViewTextBoxColumn ();

         textboxColumn.Name = _cName;

        textboxColumn.HeaderText = _cHeader;

        if (int .Parse(_cWidth) > 0) textboxColumn.Width = int .Parse(_cWidth);

        textboxColumn.Visible = bool .Parse(_cVisible);

        textboxColumn.HeaderCell.Style.Alignment = DataGridViewContentAlignment .MiddleCenter;

     

        dgvDepartment.Columns.Add(textboxColumn);

    }

     

     


    Jean PERIGNY, Développeur
    samedi 4 décembre 2010 06:42

Réponses

  • Bonjour,

    Il faut passer votre DataGridView en paramètre :

    private bool loadFile(DataGridView dgvDepartement, string _myFile)
    {
       //...
       departmentTable(dgvDepartement, sColumnType, sName, sHeader, sVisible, sWidth, sAlignment);
    }
    
    private void departmentTable(DataGridView dgvDepartement, string _cType, string _cName, string _cHeader, string _cVisible, string _cWidth, string _cAlignment)
    {
      //...
    }
    

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Marqué comme réponse jperigny samedi 4 décembre 2010 14:07
    samedi 4 décembre 2010 09:53
    Modérateur

Toutes les réponses

  • Bonjour,

    Il faut passer votre DataGridView en paramètre :

    private bool loadFile(DataGridView dgvDepartement, string _myFile)
    {
       //...
       departmentTable(dgvDepartement, sColumnType, sName, sHeader, sVisible, sWidth, sAlignment);
    }
    
    private void departmentTable(DataGridView dgvDepartement, string _cType, string _cName, string _cHeader, string _cVisible, string _cWidth, string _cAlignment)
    {
      //...
    }
    

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Marqué comme réponse jperigny samedi 4 décembre 2010 14:07
    samedi 4 décembre 2010 09:53
    Modérateur
  • Bonjour Gilles,

    Merci, c'était tout simple, et j'imaginais quelque chose de plus compliquée.

     

    Cordialement,


    Jean PERIGNY, Développeur
    samedi 4 décembre 2010 14:08