none
comment simuler le click dans un programme vc++ RRS feed

  • Question

  • Bonjours a tous ,

    je dois modifier une application Visual C++ winform en application console

    je voudrais lancer : "public: System::Void Connect_btn_Click(System::Object^  sender, System::EventArgs^  e)"

    je sais qu'en :

    VB = Connect_btn_Click(nothing,nothing)

    C# = Connect_btn_Click(null,null);

    Mais je n'arrive pas a trouver l'equivalent en Visual C++

    Merci si quelqu'un peut me montrer la commande

    Cordialement

    Alain

    jeudi 13 juillet 2017 13:05

Réponses

  • Bonjour Alain,

    Si votre code en C# ressemble à celui-ci:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace BoutonsousConsole
    {
        class Program
        {
            static private void button1_Click(object sender, EventArgs e)
            {
                Console.WriteLine("Réussite");
            }
    
            static void Main(string[] args)
            {
                Button Button1 = new Button();
                Button1.Click += new System.EventHandler(button1_Click);
                Button1.PerformClick();
                Console.ReadLine();
            }
        }
    }

    J’espère que cet exemple en C++/CLI vous aidera:

    #include "stdafx.h"
    
    using namespace System;
    
    System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        Console::WriteLine("Réussite");
    }
    
    int main(array<System::String ^> ^args)
    {
        System::Windows::Forms::Button^ button1;
        button1 = (gcnew System::Windows::Forms::Button());
        button1->Click += gcnew System::EventHandler(button1_Click);
        button1->PerformClick();
        Console::ReadLine();
        return 0;
    }

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    vendredi 14 juillet 2017 12:44
    Modérateur

Toutes les réponses

  • Bonjour Alain,

    Si votre code en C# ressemble à celui-ci:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace BoutonsousConsole
    {
        class Program
        {
            static private void button1_Click(object sender, EventArgs e)
            {
                Console.WriteLine("Réussite");
            }
    
            static void Main(string[] args)
            {
                Button Button1 = new Button();
                Button1.Click += new System.EventHandler(button1_Click);
                Button1.PerformClick();
                Console.ReadLine();
            }
        }
    }

    J’espère que cet exemple en C++/CLI vous aidera:

    #include "stdafx.h"
    
    using namespace System;
    
    System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        Console::WriteLine("Réussite");
    }
    
    int main(array<System::String ^> ^args)
    {
        System::Windows::Forms::Button^ button1;
        button1 = (gcnew System::Windows::Forms::Button());
        button1->Click += gcnew System::EventHandler(button1_Click);
        button1->PerformClick();
        Console::ReadLine();
        return 0;
    }

    Merci de nous tenir au courant.

    Cordialement,
    Dimitar

    vendredi 14 juillet 2017 12:44
    Modérateur
  • Bonjour Dimitar,

    Merci beaucoup pour cette réponse.

    j'ai fait des tests et j'ai toujours un probleme.

    voici mon code:

    #include "stdafx.h"
    
    using namespace System;
    
    
    public: System::Void Connect_btn_Click(System::Object^  sender, System::EventArgs^  e) {
    ///
    }
    
    void SendData()
    		{
    			
    			System::Windows::Forms::Button^ button1;
    			button1 = (gcnew System::Windows::Forms::Button());
    			button1->Click += gcnew System::EventHandler(Connect_btn_Click);
    			button1->PerformClick();
    						
    		}

    sur la ligne :

    button1->Click += gcnew System::EventHandler(Connect_btn_Click);


    j'ai "Connect_btn_Click" souligner en rouge avec le message:

    Erreur (active)        initialiseur de délégué non valide -- la fonction ne correspond pas au type délégué    RH Controller    c:\Users\labWIN7\Desktop\RH Controller - DLLExample\RH Controller - DLLExample\RH Controller.h     

    j'ai cherché mais je ne trouve pas d'ou vient cette erreur.

    Merci pour l'aide precieuse que vous m'apporter.

    Cordialement

    Alain

    lundi 17 juillet 2017 13:46
  • Bonjour Alain,

    Le mot clé public s’applique aux membres d’une classe (méthodes, champs...) ou à la classe entière. Puisque votre fonction Connect_btn_Click ne fait partie d’aucune classe, vous n’avez pas besoin de public: avant System::Void.

    Cordialement,
    Dimitar

    mardi 18 juillet 2017 13:17
    Modérateur