Ma première Application en C#

Messages postés
1
Date d'inscription
vendredi 19 août 2011
Statut
Membre
Dernière intervention
19 août 2011
- - Dernière réponse : quicklight
Messages postés
15
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
1 septembre 2013
- 7 sept. 2011 à 17:51
Bonjour à tous,

J'ai besoin d'un peu d'aide, je suis débutante en C#, je suis spécialisé en développement Web à l'origine, mais dans le cadre de mon apprentissage je dois voir aussi le développement d'appli, et au niveau de mon travail on me demande de développer une petite application, mais comme tout langage au début je galère.

Voici en gros mon application : C'est un début :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Stock
{
    public partial class Accueil : Form
    {
        public Accueil()
        {
            InitializeComponent();
        }

        private void BT_OF1_Click(object sender, EventArgs e)
        {
            ParametresOF myForm = new ParametresOF();
            myForm.ShowDialog();
        }

        private void BT_OF2_Click(object sender, EventArgs e)
        {
            ParametresOF myForm = new ParametresOF();
            myForm.ShowDialog();
        }

        private void BT_OF3_Click(object sender, EventArgs e)
        {
            ParametresOF myForm = new ParametresOF();
            myForm.ShowDialog();
        }

        private void BT_OF4_Click(object sender, EventArgs e)
        {
            ParametresOF myForm = new ParametresOF();
            myForm.ShowDialog();
        }
    }
}



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Stock
{
    public partial class ParametresOF : Form
    {
        public ParametresOF()
        {
            InitializeComponent();
        }

        private void BT_FERMER_Click(object sender, EventArgs e)
        {
            Close();
        }
    }
}




Vous voyez rien de merveilleux, les débuts quoi ...

Ce que je cherche a faire dans l'instant c'est de faire une bouche au niveau de ma 1er fenêtre disant que si il y a 3 OF alors afficher que 3 boutons, faire disparaitre les boutons inutile s'il n'y a pas 4 OF en cour.
*OF = sont des ateliers en gros.
Je vais connecter ma BDD a mon appli mais comment faire pour que seul 1 ou 2 ou 3 boutons s'affiche si je n'ai que 1,2,3 ateliers actif.
J'espère avoir été un minimum claire.

Merci d'avance.

Marie.
Afficher la suite 

4 réponses

Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
0
Merci
Voici les pistes que je te sugères (en t'en donnra d'autre peut être) de suivre.

Quand tu dis "dans l'instant c'est de faire une bouche au niveau de ma 1er fenêtre disant que si il y a 3 OF alors afficher que 3 boutons" bouche que je traduit boucle. Pour cela ajoute un timer a ton projet.

Quand tu dis " si il y a 3 OF alors afficher que 3 boutons, faire disparaitre les boutons ". Je pense que derire chques boutons il faut que tu ayes une varible satatique bool (true ou false). Cette variable devra changer d'état quand en clique sur le bouton.

Il faut aussi une variable global, un compteur, qui sera incrémenté à chaque fois que la variable statique du bouton vaut true. et désincrémentée dans le cas contraire. Par exemple Si l'utilisateur clique sur le bouton 1 alor la varible satatique vaudra true et le compteur vaudra +1. Si je reqlique sur le bouton 1 alor la variable statique vaudra false et le compteur vaudra -1.

Comme cela dans ton timer en lisant la valeur du compteur tu sauras combien de bouton sont cliquées.

Voila mon avis. tout te bon.
Commenter la réponse de 4u4me4us
Messages postés
1183
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
6 septembre 2011
12
0
Merci
pour ma part j'utiliserais un timer, dans lequel je me connecterait a la BDD en faisant un select count(nboffre) par exemple
en fonction du resultat(1,2,3,...) je ferais
des BT_OF1.enabled = false; //ou true
BT_OF2.enabled = false; //ou true
....

regarde mes sources tu y trouvera peut etre un peu d'aide pour les acces a la bdd


Arthenius
"Ce qui ne me tue pas, me rend plus fort..."
Commenter la réponse de Arthenius
Messages postés
718
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
22 novembre 2016
3
0
Merci
Alors moi j'ai pas tout compris, enfin je pense avoir compris que tu voulais autant de bouton sur ta Form principale que tu possèdes d'instance de "ParametresOF" ?

Pourquoi utiliser un Timer ... moi j'utiliserai une liste (List) dans laquelle je placerai mes ParametresOF avec un evenement Click associé !?

Sinon "libere" tes formulaires dès que tu le peux, exemple :

using ( ParametresOF myForm = new ParametresOF() )
{
DialogResult dr = myForm.ShowDialog();
if ( dr == bla bla ) 
}



../\_/\..
.( o.o ). ~ ElGuevel ~
..> - <..
Commenter la réponse de elguevel
Messages postés
15
Date d'inscription
jeudi 20 novembre 2008
Statut
Membre
Dernière intervention
1 septembre 2013
0
Merci
Pour illustrer un peu, je pense avoir quelque chose qui colle assez bien. Le but ne sera pas de supprimer les boutons inutiles, mais de créer ceux dont tu as besoin, et uniquement ceux là un peu comme dit elguevel.
public ParametresOF()
{
    InitializeComponent();

    int nbOF = 3; // Tu récupères le nombre d'OF
    for (int i = 1; i <= nbOF; i++) // (ici de 1 à 3)
    {
        Button b = new Button();
        b.Name = "btn_OF_" + i.ToString();
        b.Text = "OF " + i.ToString();
        b.Size = new Size(largeur, hauteur); // Par défaut : Size (75, 23);
        b.Location = new Point(x, y);

        /* Gaffe à ce qu'il soit différent pour chaque boucle sinon tes boutons seront superposés
        Pour cela, utilises quelque chose comme b.Location = new Point (50x, (i*20-10));
        Les boutons seront donc placés à 20 pixels d'interval (dans la hauteur).
        A toi de trouver comment faire autrement pour l'affichage en utilisant "i". */

        b.Click += new EventHandler(fenetreParametres);
        MonControleParent.Controls.Add(b);
    }
}

private void fenetreParametres(object sencer, EventArgs e)
}
    ParametresOF myForm = new ParametresOF();
    myForm.ShowDialog();
}


Je pense avoir été clair :)
Bon courage.
Commenter la réponse de quicklight