IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Utiliser une instance de classe dans une Winform [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 4
    Par défaut Utiliser une instance de classe dans une Winform
    Bonjour,

    Mon problème est le suivant :
    Je veux créer un programme allant chercher les données des boutons et labels à l'extérieur (dans un tableau Excel).
    Vu que ce programme risque d'être conséquent, je m'oblige à diviser toutes mes routines en classe et à les inbstancié dans le main().
    De plus, la recherche dans Excel est fort lente, je mets donc mon tableau Excel dans un tableau C# et n'utilise plus que ce tableau (Le programme est donc beaucoup plus rapide).
    Seulement, lorsque je suis dans ma Winform et que j'aimerais utiliser mon objet tableau (Crée dans le main()) je n'y arrive pas...
    Pourrais je rajouter des argument à la Form1() ? Est ce que j'utilise un mauvais chemin pour trouver mon tableau dans la Winform ?

    Je vous ai mis ma classe de mise en mémoire du tableau("MiseEnMemoireExcel.cs"), le main ("program.cs") ainsi que la WinForm("Form1.cs").
    Concretement j'ai besoin d'aide pour savoir quoi mettre à la ligne 23 de Form1.cs.D'avance merci pour vos réponses !

    Donatien

    Program.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
    namespace GestionAcces
    {
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                MiseEnMemoireExcel miseEnMemoireExcelEcran = new MiseEnMemoireExcel ("Ecran");
                MiseEnMemoireExcel miseEnMemoireExcelPersonnel = new MiseEnMemoireExcel("personnel");
     
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }
        }
    }

    MiseEnMemoireExcel.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    using System;
    using Excel = Microsoft.Office.Interop.Excel;
    using Microsoft.Office.Interop.Excel;
     
    namespace GestionAcces
    {
        public class MiseEnMemoireExcel
        {
            object[,] tableauExcel = new object[500, 26]; public object[,] TableauExcel { get { return tableauExcel; } set { tableauExcel = value; } }
     
            public MiseEnMemoireExcel(string SheetName)
            {
                Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
                xlApp.Workbooks.Open("C:\\Users\\be4u0005\\Documents\\Excel\\Test.xlsx");
     
                int i = 0;
     
                for (int row = 1; row <= 500; row++) //lit les différentes lignes. Si on veut aller jusqu'au bout : xls.RowCount
                {
                    int j = 0;
     
                    for (int colIndex = 1; colIndex <= 26; colIndex++) //lit les différentes colonnes.Si on veut aller jusqu'au bout : xls.ColCountInRow
                    {
                        object cell = (xlApp.Worksheets.Application.Cells[row, colIndex]).Value; //On va lire la valeur à une certaine (ligne, colonne)
                        tableauExcel[i, j] = cell;
                        j++;
                    }
                    i++;
     
                }
                xlApp.Workbooks.Close();
            }
        }
    }

    Form1.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
     
     
    namespace GestionAcces
    {
        public partial class Form1 : Form 
        {
            public Form1()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                label1.Text = 
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
     
            }
     
        }
    }

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Tu crés une surcharge du constructeur de ta fenêtre qui prend en paramètres tes classes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        public partial class Form1 : Form
        {
            MiseEnMemoireExcel ExcelEEcran;
            MiseEnMemoireExcel ExcelPersonnel;
            public Form1()
            {
                InitializeComponent(); 
            }
            public Form1(MiseEnMemoireExcel Ecran, MiseEnMemoireExcel Personnel)
            {
                InitializeComponent();
                ExcelEEcran = Ecran;
                ExcelPersonnel = Personnel;
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                label1.Text = ExcelEEcran.TableauExcel[1,3].ToString();
            }
        }
    Appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run(new Form1(miseEnMemoireExcelEcran, miseEnMemoireExcelPersonnel));
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2015
    Messages : 4
    Par défaut
    Merci, en effet c'est aussi simple que celà !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une variable tableau public dans une instance de classe
    Par tamtam64 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/06/2015, 07h52
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. Réponses: 4
    Dernier message: 03/04/2010, 12h05
  4. Comment créer une liste ou une instance de classe dans une fonction ?
    Par Neolander dans le forum Général Python
    Réponses: 9
    Dernier message: 05/03/2008, 19h22
  5. Réponses: 3
    Dernier message: 02/09/2007, 21h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo