Faire grisé un bouton

Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
- - Dernière réponse : billou_13
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
- 24 févr. 2011 à 13:24
comment on fait pour faire grisé deux bouton dans un autre form , bon je vous explique j'ai deux form , le premier a 2 bouton , et l'autre en a 4 , je veux que quand j'appui sur le premier bouton de la form1 , les 4 bouton de la 2éme form devienent grisé et quand j'appui sur le deuxiéme bouton , il deviennent plus grisé .
Afficher la suite 

19 réponses

Meilleure réponse
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
1
Merci
Bonjour,

Pour ce faire, il te suffit de jouer simplement avec la propriété "Enabled" de tes boutons.

Attention, cela désactivera les boutons. Je pars du principe que quand tu parles de griser les boutons, il s'agit de les désactiver.
Si non, il te faudra changer ton code de couleur au risque de perdre ton utilisateur (et dans ce cas, il te faudra jouer avec le ForeColor et BackColor de ton bouton).

Bon développement,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
je veux faire grisé le bouton de la form 2 a partir d'un bouton de la form1
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Bonjour,

Tu veux beaucoup de choses mon cher ami mais "tu voudrais" serait plus poli (avec un "SVP, merci" à la fin et tu fais de moi un homme comblé pour la journée pour pas cher).

Pour ta demande, tu trouveras ton bonheur dans les liens suivants:
- Bidou: PASSAGE DE PARAMETRES.
- yelima: Passage de variable entre deux formulaires.

Le premier te propose plus de solution et le passage par event sera surement le plus adapté à ton choix (événement sur la Form1 envoyé lors du clic sur ton bouton => événement auquel s'abonne la Form2 pour griser ses boutons).

Bonne journée,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
Merciiii beaucoup et désolé pour le dérangement ! :D
Commenter la réponse de poomen
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
J'ai essayé avec le bouton , ca n'a pas marché...
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Salut,

Peux-tu nous donner plus de détails sur ton code ? (celui de la Form1 et Form2).
Car je ne vois pas comment t'éclairer plus.

Bonne journée,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
comme je vous ai dis , le premier form contient juste 2 bouton , et le second form contient aussi 2 bouton , je veux que quand j'appui sur le premier bouton du form 1 les bouton de la form2 se grisent , ca consistera que 2 ligne de code.....merci d'avance ! :D
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Re,

Alors, je ne vois pas pourquoi cela ne marche pas avec les infos que je t'ai donné.
Et comment peux-tu prétendre que ca ne prend que deux lignes de code si ça ne marche pas de ton côté ? (perso, avant de commencer un projet, je ne sais pas combien de lignes de code je vais pondre... ;p ).
C'est pourquoi, je voudrais voir ton code pour essayer de voir si qu'il ne va pas.

Enfin, quoi qu'il en soit, il te suffit de faire un truc du style (j'ai pas contrôlé mon code car j'ai pas le temps de tester et tout):
public partial class Form2 : Form
{
  public Form2(Form1 parent)
  {
    // Abonnement à l'événement de clic sur le Button1 de la Form1
    parent.OnButton1Click += new EventHandler(OnForm1Button1Click);
  }

  protected void OnForm1Button1Click(object sender, EventArgs e)
  {
    // TO DO: griser les deux boutons...
  }
}

public partial class Form1 : Form
{
  public event EventHandler OnButton1Click = null;

  public void OpenForm2()
  {
    Form2 form2 = new Form2(this);
  }

  protected void Button1_Click(object sender, EventArgs e)
  {
    // Envoi de l'événement...
    if(OnButton1Click != null)
    {
      OnButton1Click(this, e);
    }
  }
}


Je ne peux pas faire plus pour toi. C'est à toi de jouer maintenant !

Bon courage,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
merci pour ton aide , mais quand je fais griser les deux bouton dans la fonction
protected void OnForm1Button1Click(object sender, EventArgs e)
{
button1.Enabled = false;
button2.Enabled = false;
}
il me donne l'erreur suivante :
"La référence d'objet n'est pas définie à une instance d'un objet"
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Bonjour,

C'est surement parce que "button1" ou "button2" est égal à null... (à voir avec ton debugger).
Dans ce cas, cela signifie que ces boutons n'ont pas été créés.
Ta Form2 est-elle bien affichée ??? (si non, c'est normal que tes boutons soient null).

Sinon, je ne vois pas là.
Peux-tu nous donner plus de précision sur ton exception:
- Quelle ligne ?
- Quel objet est null ?
- etc...

Voila,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
Form 1

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 passage_de_2_formulaire
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public event EventHandler OnButton1Click = null;
public void OpenForm2()
{
Form2 form2 = new Form2(this);
}
private void button1_Click(object sender, EventArgs e)
{

OpenForm2();
if (OnButton1Click != null)
{
OnButton1Click(this, e);
}
}
}
}

FORM 2

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 passage_de_2_formulaire
{
public partial class Form2 : Form
{
public Form2(Form1 parent)
{
parent.OnButton1Click += new EventHandler(OnButton1Click);
// OnForm1Button1Click
}
public void OnButton1Click(object sender, EventArgs e)
{

button1.Enabled = false;
button2.Enabled = false;
}
private void Form2_Load(object sender, EventArgs e)
{

}
}
}

chaque form a 2 bouton !
en ce qui concerne l'erreur
La référence d'objet n'est pas définie à une instance d'un objet.
cette exception est dans signalé sur button 1.enabled=false
qui est déja crée !
Commenter la réponse de poomen
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
Merci d'avance , et désolé encore une fois pour le dérangement !
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Cela me parait normal, ta Form2 est cachée lorsque tu envoies l'événement "OnButton1Click".
Donc, ton boutton n'est pas créé et est null.

Il te faut montrer la Form2 (dans OpenForm2) en ajoutant le code suivant:
Form2 form2 = new Form2(this);
form2.Show();


Maintenant, mon code n'est pas à prendre à la lettre. A toi de ré-organiser tout ça pour faire ce dont tu as besoin.

Cdlt,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
oui , mais meme si il affiche la form2 , il y a toujours cette erreur dans le button1.enabled=false , La référence d'objet n'est pas définie à une instance d'un objet.
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Effectivement, en même temps, je n'avais pas vu que tu avais enlevé l'appel de la méthode "InitializeComponent();" de ta Form2.
C'est cette méthode qui créé tes boutons.

Il te faut donc les constructeurs suivant pour ta Form2:
public Form2()
{
  InitializeComponent();
}

public Form2(Form1 parent)
  : this() // Appel le constructeur par défaut !
{
  parent.OnButton1Click += new EventHandler(OnButton1Click);
}


Ca devrait être mieux maintenant.

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
j'ai essayé , il n'y pas de contructeur (this)
ca serai mieux , sie je t'envoyais sur ca sur ta boite , passe moi ton email !
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
As-tu au moins essayé de copier coller le dernier code que je t'ai envoyé ?

Le this() est un mot clé en C# qui appelle le constructeur par défaut (ie, celui sans argument):
"this()" appelle "public Form2()" qui ds son corps appelera "InitializeComponent();"

Je pense que je t'ai plus que lancé sur la pente de la réussite là...

C'est la bonne cette fois,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13
Messages postés
117
Date d'inscription
dimanche 2 janvier 2011
Statut
Membre
Dernière intervention
25 mars 2011
0
Merci
Si si , je l'est utilisé mais toujours l'erreur sur le bouton....!! :S
Commenter la réponse de poomen
Messages postés
874
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
15
0
Merci
Ta fonction "InitializeComponent()" doit créer tes boutons. Sinon, tu as un bug à corriger.

Essaie de trouver la raison qui fait que ton bouton n'est pas créé.

Courage,

Billou_13

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Commenter la réponse de billou_13