Je souhaite faire une application en C++ avec des fen�tres gr�ce Visual C++.
J'arrive a faire mes fen�tres mais je n'arrive pas a faire que quand je clique sur un bouton �a m'am�ne a une autre fen�tre.
Comment faire ??
Merci d'avance
Version imprimable
Je souhaite faire une application en C++ avec des fen�tres gr�ce Visual C++.
J'arrive a faire mes fen�tres mais je n'arrive pas a faire que quand je clique sur un bouton �a m'am�ne a une autre fen�tre.
Comment faire ??
Merci d'avance
Slt je crois que tu n'est pas ton le bon forum car ici c'est C# a ne pas confondre avec C++ quoi qu'il en soit la syntaxe est tres ressemble car C# herite de C++ est l'evolution selon microsoft et non Darwin
C->C++->C# oui on ajoute ++ a chaque fois alors a quand C++++++ :mouarf:
bon en C# pour faire apparaitre une autre form
Form2 frm = new Form2();
frm.Show();
sa doit etre equivalent en C++ mais va poser la question sur le forum C++
Merci
Je comprend pu rien sur le forum C++ on me dit de venir ici et ici c'est l'inverse :?
Je pense que le mieux est dans le sous forum Manag�/Natif
le mieux est le forum C++/CLI,
regarde dans la faq C++/CLI http://dotnet.developpez.com/faq/cpp...rms#newwinform
J'ai �t� dans la FAQ grace au lien
Mais je ne sais pas ou inclureCitation:
Comment cr�er et afficher une nouvelle Winform ?
auteur : nico-pyright(c)
Il faut dans un premier temps cr�er une nouvelle Winform :
Click droit sur le projet --> Add -- New Item --> UI --> Winforms Form.
L�, nommez-la comme bon vous semble, par exemple Form2. Visual Studio g�n�re donc une nouvelle classe, et la winform est modifiable �galement � travers l'IDE.
Pour afficher cette nouvelle form, par exemple depuis un click sur un bouton de la premi�re form, il faut inclure le Form2.h dans le fichier .h de notre premi�re Form (Form1.h par d�faut).
#include "Form2.h"
Ensuite dans l'�v�nement du click sur le bouton (ou autre), il faut instancier la classe et appeler la m�thode Show() sur l'objet cr��.
Form2 ^maForm2 = gcnew Form2();
maForm2->Show();
Notez que la m�thode Show() affiche la fen�tre simplement. On peut �galement utiliser ShowModal() pour qu'elle soit modale comme une bo�te de dialogue.
Citation:
Form2 ^maForm2 = gcnew Form2();
maForm2->Show();
et bien ca d�pend, tu veux que la nouvelle form s'ouvre � quelle occasion ?
si c'est lors du click sur un bouton, il faut le mettre dans la m�thode qui est g�n�r�e lors de l'�v�nement du click sur le bouton (pour savoir comment g�n�rer la m�thode click, voir dans ce tuto http://nico-pyright.developpez.com/t...s/#LhelloWorld , c'est expliqu� pour le label, mais le principe est le meme)
Si j'ai bien compris il faut que j'introduise
dans mon code sourceCitation:
Form2 ^maForm2 = gcnew Form2();
maForm2->Show();
apres la ligneCitation:
#include "Form2.h"
#pragma once
namespace projet1 {
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;
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->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(51, 76);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(194, 106);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button_click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(292, 266);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void button_click(System::Object^ sender, System::EventArgs^ e) {
}
};
}
Citation:
private: System::Void button_click(System::Object^ sender, System::EventArgs^ e) {
tu as bien compris
merci mais quand je test mon projet il y a 4 erreursCitation:
------ D�but de la g�n�ration : Projet : projet1, Configuration : Debug Win32 ------
Compilation en cours...
projet1.cpp
c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(89) : error C2065: 'Form2' : identificateur non d�clar�
c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(89) : error C2065: 'maForm2' : identificateur non d�clar�
c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(89) : error C2061: erreur de syntaxe : identificateur 'Form2'
c:\documents and settings\d1e2w\mes documents\visual studio 2005\projects\projet1\projet1\Form1.h(90) : error C2227: la partie gauche de '->Show' doit pointer vers un type class/struct/union/g�n�rique
le type est ''unknown-type''
tu dois d�buter en C++, peut-etre qu'un ptit cours ou un ptit bouquin pourrait t'aider
il faut bien sur inclure dans ce fichier le fichier .h qui contient la d�finition de form2
Code:#include "Form2.h"
elle est d�j� inclue a la premi�re ligne du code
est-ce que Form2 inclu �galement form1.h ?
si oui voir dans la faq c++/cli a cet endroit http://dotnet.developpez.com/faq/cpp...s#crossinclude
si non, uploade ton projet que je jette un coup d'oeil
�a depend oui et non car je souhaite faire un programme o� comme dans les programmes d'installation quand tu clique sur le bouton tu acc�d� a " une autre page "
est-ce que la solution des d�clarations anticip�es solutionne ton probl�me ?
Apr�s une absence hier je recr�er un nouveau projet et sa marche.
Mais il s'ouvre une deuxi�me fen�tre lorsque je clique sur le bouton
comment faire pour que seulement le contenu de la fen�tre change??
Merci
ah ba c'�tait pas la question pos�e :aie:
pour ca, plusieurs m�thodes, mais peut-etre que le plus simple serait de cacher la premiere fenetre et d'ouvrir la deuxieme � la meme position.
Sinon, utiliser 2 panels ou 2 usercontrols