none
Passer un bouton d'un User Control de Enables = false à Enables = true RRS feed

  • Question

  • Bonjour,

    j'ai un User Control sur lequel il y a un bouton (= bouton 2) qui est à Enabled = False. Ce User Control est utilisé sur une form qui contient elle même un bouton (bouton 1).

    Je voudrais que lorsque je clique sur le bouton 1 (de la form principale) le bouton 2 (qui est à Enabled = false) passe à  Enabled = true.

    J'ai essayé différentes méthode...EnabledCanged... mais rien ne marche.

    Quelqu'un aurait-il une idée?

    J'ai fait un petit exemple qui peut être téléchargé ici:

    https://onedrive.live.com/redir?resid=9A54D2D04C49D005!177&authkey=!APgKETpfW6HrCIQ&ithint=file%2c.zip

    Merci pour votre aide.

    vendredi 21 février 2014 22:21

Réponses

  • Bonjour,

    Je viens de télécharger votre exemple. Je ne vois pas pourquoi vous instancier des contrôles en plus (new Button(), new ButtonUC()....).

    Voici le code qui fonctionne :

    public partial class Form1 : Form
    {
            
        //ButtonUC bc = new ButtonUC();
    
        public Form1()
        {
            InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            //Button b = new Button();
            //b.Enabled = true;
            //bc.UCButton_EnabledChanged(b, new EventArgs());
            buttonUC1.UCButton.Enabled = true;
        }
    
    
    }

    Et côté UserControl :

        public partial class ButtonUC : UserControl
        {
            public ButtonUC()
            {
                InitializeComponent();
            }
    
            public void UCButton_EnabledChanged(object sender, EventArgs e)
            {
                // UCButton.Enabled = true;
            }
    
        }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera lundi 24 février 2014 08:33
    dimanche 23 février 2014 22:48
    Modérateur

Toutes les réponses

  • Bonjour,

    Définissez la propriété "Modifiers" de votre "bouton2" à "Public" afin que vous puissiez y avoir accès à l'extérieur de votre UserControl.

    Et utilisez le code suivant :

    this.monUserControl.bouton2.Enabled = false;

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    dimanche 23 février 2014 17:27
    Modérateur
  • Bonjour,

    j'avais déjà essayé cette solution. Mon bouton est déjà en Modifiers public, mais pas moyen depuis le form1 de passer le bouton 2 à Enabled = true;. Cela n'a aucun effet.

    Merci

    dimanche 23 février 2014 20:13
  • Bonjour,

    Je viens de télécharger votre exemple. Je ne vois pas pourquoi vous instancier des contrôles en plus (new Button(), new ButtonUC()....).

    Voici le code qui fonctionne :

    public partial class Form1 : Form
    {
            
        //ButtonUC bc = new ButtonUC();
    
        public Form1()
        {
            InitializeComponent();
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            //Button b = new Button();
            //b.Enabled = true;
            //bc.UCButton_EnabledChanged(b, new EventArgs());
            buttonUC1.UCButton.Enabled = true;
        }
    
    
    }

    Et côté UserControl :

        public partial class ButtonUC : UserControl
        {
            public ButtonUC()
            {
                InitializeComponent();
            }
    
            public void UCButton_EnabledChanged(object sender, EventArgs e)
            {
                // UCButton.Enabled = true;
            }
    
        }

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance - P.O.S Informatique
    Blog : http://gilles.tourreau.fr - Suivez-moi sur Twitter
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCSA : SQL Server 2012
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0 / TFS 2010 / Windows Azure

    • Marqué comme réponse Aurel Bera lundi 24 février 2014 08:33
    dimanche 23 février 2014 22:48
    Modérateur
  • Bonjour,

    effectivement, cela fonctionne. Je crois que j'ai compliqué les choses.

    Merci pour votre aide !

    lundi 24 février 2014 07:26