Visual C++ .NET - como volver a un formulario en visual c++

 
Vista:
sin imagen de perfil

como volver a un formulario en visual c++

Publicado por andres (3 intervenciones) el 19/07/2014 03:08:03
buenas tardes tengo una gran inquietud, hace poco me cambie a la plataforma de programación multilenguaje que ofrece visual estudio; especial mente utilizo visual c++.

el problema es el siguiente
creo un programa en cual tiene un MyForm "primera form" en el cual coloco un boton,
despues agrego al proyecto un nuevo formulario "MyForm1", "es el segundo form" el cual va hacer llamado "mostrado" cuando el evento click del boton de la MyForm sea ejecutado

asta hay todo va bien,

el problema es cuando quiero que MyForm1 "la segunda form" por medio de un boton me muestre MyForm "primera form" ........

ese es realmente el problema, me gustaría que me echaran una manito ya que llevo mas de un mes divagando en la web sin encontrar solución actual mente estoy trabajando con visual c++ 2013

agrego el bloque de codigo el cual esta descrito lo que llevo

esta es Myform "el primer formulario"

#pragma once
#include"MyForm1.h"

namespace Project1 {

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>
/// Resumen de MyForm
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
InitializeComponent();
//
//TODO: agregar código de constructor aquí
//
}

protected:
/// <summary>
/// Limpiar los recursos que se estén utilizando.
/// </summary>
~MyForm()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:

private:
/// <summary>
/// Variable del diseñador requerida.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Método necesario para admitir el Diseñador. No se puede modificar
/// el contenido del método con el editor de código.
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(30, 45);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
//
// MyForm
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(280, 258);
this->Controls->Add(this->button1);
this->Name = L"MyForm";
this->Text = L"MyForm";
this->ResumeLayout(false);

}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
MyForm1().ShowDialog();
}
};
}


esta es MyForm1 "la segunda form"

#pragma once
#include"MyForm.h"

namespace Project1 {

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>
/// Resumen de MyForm1
/// </summary>
public ref class MyForm1 : public System::Windows::Forms::Form
{
public:
MyForm1(void)
{
InitializeComponent();
//
//TODO: agregar código de constructor aquí
//
}

protected:
/// <summary>
/// Limpiar los recursos que se estén utilizando.
/// </summary>
~MyForm1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:

private:
/// <summary>
/// Variable del diseñador requerida.
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Método necesario para admitir el Diseñador. No se puede modificar
/// el contenido del método con el editor de código.
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(12, 33);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &MyForm1::button1_Click);
//
// MyForm1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(280, 258);
this->Controls->Add(this->button1);
this->Name = L"MyForm1";
this->Text = L"MyForm1";
this->ResumeLayout(false);

}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
MyForm().ShowDialog();
}
};
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

como volver a un formulario en visual c++

Publicado por Pico (15 intervenciones) el 19/07/2014 19:56:47
A un form se va siempre de la misma manera. Se va al uno como vas al dos, al dos como vas al uno, como pones el nombre a un botón, como haces cualquier cosa con cualquier objeto. Y eso se hace

A TRAVËS DE UN PUNTERO A ESE OBJETO

Si sabes programar tienes bien claro qué es un puntero mucho antes de haber usado un objeto. El problema es cuando en vez de aprender a programar se aprende a juntar palabros.

this es un puntero, a través de ese puntero accedes a sus métodos, propiedades... como en this->AutoScaleDimensions.
button1 es un puntero, en este caso a un button, y accedes con él a todo, como en button1->Location.
MyForm() es un puntero a un form, y accedes a él para mostrarlo con MyForm().ShowDialog().
Si quieres acceder a un objeto para hacer algo con él tienes que tener su puntero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como volver a un formulario en visual c++

Publicado por andres (3 intervenciones) el 20/07/2014 02:24:51
hola si lo que tu dices es verdad.

pero al correr el código que te muestro en visual c++ meda error como si yo pudiera "ir hacia adelante" abrir la segunda forma pero me dice que no puedo regresar de la segunda a al primera por que no la reconoce meda error desde que incluyo la forma1 -> "#include"MyForm"" desde que pongo esto en el encabezado me da error.

como podría hacer para regresar me a la anterior forma ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como volver a un formulario en visual c++

Publicado por Pico (15 intervenciones) el 21/07/2014 16:33:39
No creo haber puesto yo nada de includes. Puntero he dicho. Un puntero no tiene nada que ver con un include.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como volver a un formulario en visual c++

Publicado por andres (3 intervenciones) el 22/07/2014 00:58:26
amigo ya le entendí si tienes toda la razón, anterior mente programaba en bilder c++ 6 y hay yo retrocedía como tu lo dices Form1->Show(); eso es perfecto.

pero el problema es que estoy utilizando visual c++ y hay cambia la cosa, si en la forma2 coloco un botton que retroceda a la forma1 "Form1->ShowDialog();" me dice que no reconoce Form1. hay es donde estoy naufragando nose que hacer.


y cuando utilizo el this-> en la forma dos solo me muesta los objetos u eventos que tenga solo la forma2 y no me deja llamar a la forma1.

ayudeme le agradezco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como volver a un formulario en visual c++

Publicado por Ferchito1991 (1 intervención) el 25/11/2016 02:55:38
Tengo el mismo problema, lo que he investigado es que es un problema de herencia que tiene c++. porque en c# lo puedes hacer a la ligera, ir y venir atraves de los formularios pero en c++ tienes un formulario padre->abre un hijo->abre un hijo del hijo
pero no puedes voler del hijo del hijo->hijo->padre

si logras conseguir la solucion escribeme
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar