Creer un bouton en c++

madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, j'ai creer une application avec visual c++, jai des creer des boutons qui me permetterons de fermer l'application, d'ouvrir une fenetre en gardant la fenetre principale active, d'ouvrir une fenetre en fermant la fenetre principale , le probleme c'est que je ne connait pa le code a inserer dans cette partie:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
};

Je cherche aussi a afficher les résultat d'une requête dans une datagrid, mais je sais comment faire, merci de bien vouloir m'apporter un peu d'aide parceque j'ai beau chercher, je ne trouve rien.

9 réponses

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ça dépend, que dois faire spécifiquement Button1 ?
Par exemple pour fermer la fenêtre, le code c'est: this->Close();

Par contre tu ne pourras pas fermer la fenêtre principale sans arrêter le programme.
En conséquence tu ne pourras pas "ouvrir une fenetre en fermant la fenetre principale", en revanche tu pourras la cacher avec: this->Visible=false;
La confiance n'exclut pas le contrôle
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Remarque : les Windows Forms, ce n'est plus tout à fait du C++, on parle plutôt de C++/CLI
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Merci bcp, est ce que tu peu me donner le script pour ouvrir une fenetre stp?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Par exemple si tu as créés la classe Form2 qui représente la fenêtre que tu veux ouvrir avec le bouton 1 de Form1, alors ta fonction sera :

#include "Form2.h"

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)
{
	Form2^ fenetre = gcnew Form2(); // on créé une fenêtre
	fenetre->Visible=true; // on l'affiche
}

Remarque : en C++ on parle de code et non pas de script !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour le code KX! ;)
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai ecrit comme tu me l'a dit mais le programme ne se compile pas lorsque je met le code pour aller sur une autre form, voici mon code:
#pragma once




#include "Form3.h"
namespace truc {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary>
	/// Description résumée de Form1
	///
	/// AVERTISSEMENT : si vous modifiez le nom de cette classe, vous devrez modifier la
	///          propriété 'Nom du fichier de ressources' de l'outil de compilation de ressource managée
	///          pour tous les fichiers .resx dont dépend cette classe. Dans le cas contraire,
	///          les concepteurs ne pourront pas interagir correctement avec les ressources
	///          localisées associées à ce formulaire.
	/// </summary>
	public ref class Form1 : public System::Windows::Forms::Form
	{
	public:
		Form1(void)
		{
			InitializeComponent();
			//
			//TODO : ajoutez ici le code du constructeur
			//
		}

	protected:
		/// <summary>
		/// Nettoyage des ressources utilisées.
		/// </summary>
		~Form1()
		{
			if (components)
			{
				delete components;
			}
		}
	private: System::Windows::Forms::Button^  button1;
	private: System::Windows::Forms::Button^  button2;
	protected: 

	private:
		/// <summary>
		/// Variable nécessaire au concepteur.
		/// </summary>
		System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
		/// <summary>
		/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
		/// le contenu de cette méthode avec l'éditeur de code.
		/// </summary>
		void InitializeComponent(void)
		{
			this->button1 = (gcnew System::Windows::Forms::Button());
			this->button2 = (gcnew System::Windows::Forms::Button());
			this->SuspendLayout();
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(150, 46);
			this->button1->Name = L"button1";
			this->button1->Size = System::Drawing::Size(81, 33);
			this->button1->TabIndex = 0;
			this->button1->Text = L"Fermer";
			this->button1->UseVisualStyleBackColor = true;
			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
			// 
			// button2
			// 
			this->button2->Location = System::Drawing::Point(150, 115);
			this->button2->Name = L"button2";
			this->button2->Size = System::Drawing::Size(80, 34);
			this->button2->TabIndex = 1;
			this->button2->Text = L"Form3";
			this->button2->UseVisualStyleBackColor = true;
			this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
			// 
			// Form1
			// 
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
			this->ClientSize = System::Drawing::Size(284, 264);
			this->Controls->Add(this->button2);
			this->Controls->Add(this->button1);
			this->Name = L"Form1";
			this->Text = L"Form1";
			this->ResumeLayout(false);

		}
#pragma endregion
	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
			this->Close();  }
	private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
Form3^ fenetre = gcnew Form3(); // on créé une fenêtre
	fenetre->Visible=true; // on l'affiche			 }
	};
}


Je ne voit pas ou est l'erreur.
0
madinino2
 
c'est quoi Form3.h ????
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Form3.h est le fichier qui définit la fenêtre qui doit être ouverte lorsque l'on clique sur button2 dans la fenêtre Form1 (ce sont les toutes dernières lignes de code) :

private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
    Form3^ fenetre = gcnew Form3(); // on créé une fenêtre
    fenetre->Visible=true; // on l'affiche
}

Remarque : ce sujet est résolu depuis plusieurs mois ;-)
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai mal placé l'accolade dans le programme, c'est bon merci, dsl
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Est ce que tu connait un bon tuto qui explique comment effectuer des requetes dans une base access, ou alors me donner la procédure a suivre stp, je voudrais pouvoir effacer, ajouter , afficher des données de la base.
Si j'arrive à passer cette etape, je peut dire que la moitié du travail est deja fait, ce serai super cool.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Non désolé, je ne me suis jamais servis d'Access
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
qu'est ce que tu utilise comme base pour un programme en c++?
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Je n'ai jamais programmé de base de données en C++
J'utilisais MySQL mais c'était de la programmation Java EE
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Et d'ou tu sort les infos que tu m'as donné? sans vouloir etre indiscret.
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Même si je ne me suis jamais servi de bases de données en C++, ça ne m'empêche pas de savoir utiliser Visual Studio pour faire d'autres types d'applications...
En plus ce que je t'ai donné c'est la base ! Si je ne savait pas créer un bouton ou afficher un formulaire, c'est que je n'aurai jamais vraiment fait de Windows Forms !
0
madinino Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
ok, ben moi c'est ma toute premiere application en fait, encore merci pour les info que tu ma filé
0