Нужно открыть 2ое окно по щелчку кнопки. Как это реализовать? Вот код: GUI.cpp | Код | // GUI.cpp: главный файл проекта.
#include "stdafx.h" #include "Form1.h" #include "Form2.h"
using namespace GUI;
[STAThreadAttribute]
int main(array<System::String ^> ^args) { // Включение визуальных эффектов Windows XP до создания каких-либо элементов управления Application::EnableVisualStyles(); Application::SetCompatibleTextRenderingDefault(false);
// Создание главного окна и его запуск Application::Run(gcnew Form1()); return 0; }
|
Form1 | Код | #pragma once #include<stdio.h> #include<stdlib.h> #include<string>
namespace GUI {
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> /// Сводка для Form1 /// /// Внимание! При изменении имени этого класса необходимо также изменить /// свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса, /// связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае, /// конструкторы не смогут правильно работать с локализованными /// ресурсами, сопоставленными данной форме. /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: int n; Form1(void) { InitializeComponent(); // //TODO: добавьте код конструктора // }
protected: /// <summary> /// Освободить все используемые ресурсы. /// </summary> ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Label^ label1; protected: private: System::Windows::Forms::Button^ button1; private: System::Windows::Forms::TextBox^ textBox1; private: System::Windows::Forms::Label^ label2; private: System::Windows::Forms::Label^ label3; private: System::Windows::Forms::Label^ label4; private: System::Windows::Forms::Label^ label5;
private: /// <summary> /// Требуется переменная конструктора. /// </summary> System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code /// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> void InitializeComponent(void) { this->label1 = (gcnew System::Windows::Forms::Label()); this->button1 = (gcnew System::Windows::Forms::Button()); this->textBox1 = (gcnew System::Windows::Forms::TextBox()); this->label2 = (gcnew System::Windows::Forms::Label()); this->label3 = (gcnew System::Windows::Forms::Label()); this->label4 = (gcnew System::Windows::Forms::Label()); this->label5 = (gcnew System::Windows::Forms::Label()); this->SuspendLayout(); // // label1 // this->label1->AutoSize = true; this->label1->Location = System::Drawing::Point(11, 9); this->label1->Name = L"label1"; this->label1->Size = System::Drawing::Size(58, 13); this->label1->TabIndex = 0; this->label1->Text = L"Введите n"; // // button1 // this->button1->Location = System::Drawing::Point(165, 439); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(115, 24); this->button1->TabIndex = 1; this->button1->Text = L"button1"; this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click); // // textBox1 // this->textBox1->Location = System::Drawing::Point(75, 5); this->textBox1->Name = L"textBox1"; this->textBox1->Size = System::Drawing::Size(205, 20); this->textBox1->TabIndex = 2; // // label2 // this->label2->AutoSize = true; this->label2->Location = System::Drawing::Point(11, 38); this->label2->Name = L"label2"; this->label2->Size = System::Drawing::Size(99, 13); this->label2->TabIndex = 3; this->label2->Text = L"Исходный массив"; // // label3 // this->label3->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle; this->label3->Location = System::Drawing::Point(14, 62); this->label3->Name = L"label3"; this->label3->Size = System::Drawing::Size(265, 174); this->label3->TabIndex = 4; // // label4 // this->label4->AutoSize = true; this->label4->Location = System::Drawing::Point(16, 249); this->label4->Name = L"label4"; this->label4->Size = System::Drawing::Size(140, 13); this->label4->TabIndex = 5; this->label4->Text = L"Отсортированный массив"; // // label5 // this->label5->BorderStyle = System::Windows::Forms::BorderStyle::FixedSingle; this->label5->Location = System::Drawing::Point(14, 262); this->label5->Name = L"label5"; this->label5->Size = System::Drawing::Size(265, 174); this->label5->TabIndex = 6; // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(292, 470); this->Controls->Add(this->label5); this->Controls->Add(this->label4); this->Controls->Add(this->label3); this->Controls->Add(this->label2); this->Controls->Add(this->textBox1); this->Controls->Add(this->button1); this->Controls->Add(this->label1); this->Name = L"Form1"; this->Text = L"Работа с массивами"; this->ResumeLayout(false); this->PerformLayout();
} #pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { //тут по щелчку нужно открыть окно }; }
|
Form2 | Код | #pragma once
using namespace System; using namespace System::ComponentModel; using namespace System::Collections; using namespace System::Windows::Forms; using namespace System::Data; using namespace System::Drawing;
namespace GUI {
/// <summary> /// Сводка для Form2 /// /// Внимание! При изменении имени этого класса необходимо также изменить /// свойство имени файла ресурсов ("Resource File Name") для средства компиляции управляемого ресурса, /// связанного со всеми файлами с расширением .resx, от которых зависит данный класс. В противном случае, /// конструкторы не смогут правильно работать с локализованными /// ресурсами, сопоставленными данной форме. /// </summary> public ref class Form2 : public System::Windows::Forms::Form { public: Form2(void) { InitializeComponent(); // //TODO: добавьте код конструктора // }
protected: /// <summary> /// Освободить все используемые ресурсы. /// </summary> ~Form2() { if (components) { delete components; } }
private: /// <summary> /// Требуется переменная конструктора. /// </summary> System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code /// <summary> /// Обязательный метод для поддержки конструктора - не изменяйте /// содержимое данного метода при помощи редактора кода. /// </summary> void InitializeComponent(void) { this->SuspendLayout(); // // Form2 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(292, 266); this->Name = L"Form2"; this->Text = L"Form2"; this->Load += gcnew System::EventHandler(this, &Form2::Form2_Load); this->ResumeLayout(false);
} #pragma endregion private: System::Void Form2_Load(System::Object^ sender, System::EventArgs^ e) { } }; }
|
Я так понимаю нужно сделать ссылку в Form1 на Form2, но к сожалению не знаю как это сделать в C++.
|