Генератор цветов Уроки C++ Уроки Windows forms Учебники по программированию Уроки HTML Уроки CSS Готовые задания Исходники Полезные программы
регистрация доменов

Дешёвые домены


Уроки Windows Forms C++/C#




Объединение двух форм в MVS C++

В данном уроке будет рассмотрен очень актуальный и популярный вопрос – "Как связать две формы?". Написано огромнейшее количество программ, в которых после нажатия кнопки появляется новая форма с новыми элементами. Рассмотрением этого вопроса мы и займёмся. В этом уроке будет показан простой пример, того как связать две форма, а в "следующем уроке" уже будет рассмотрено создание простой базы данных. И так, первым делом создайте проект в приложение "Windows Forms", после этого появиться, уже наверно, привычная вам форма. Теперь нужно создать вторую форму в этом жу проекте – это делается следующим образом: выбираете в верхнем меню раздел "Проект", после чего откроется новою меню, в котором нужно будет выбрать "Добавить новый элемент", после этого появиться новое окно, в котором уже будет выделен элемент "Форма Windows Forms", вам нужно будет назвать его –"form2". Ниже представлена иллюстрация действий:





После этого на панели появиться вторая форма конструктора. Суть учебного примера следующая – на "Form1" находится текстовое поле и кнопка, в текстовое поле вводится число, нажимается кнопка, введенное число возводится в квадрат, после чего появляется "form2" на котором тоже есть текстовое поле, где будет показан результат возведения числа в квадрат. Важно понять следующее – поскольку элемент "textBox1" будет находится на обоих формах, то его нужно объявить как public в верху кода формы "form2", а в коде формы "Form1" в самом верху кода подключить библиотеку второй формы #include "form2", так же в одном из событий нужно писать:

form2^ gform2 = gcnew form2;
             gform2->Show();
             gform2->какой-то элемент;




Перенесите на первую форму "textBox" и "button", а на вторую просто "textBox". Теперь в форму один запишите этот код:


Form1


#pragma once
#include "form2.h"

namespace Two_Forms {

using namespace System;
.
.
.
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
Single a, b = 0;
Single A = Single::TryParse(textBox1->Text, System::Globalization::NumberStyles::Number, System::Globalization::NumberFormatInfo::CurrentInfo, a);
b = a*a;
textBox1->Text = String::Format("Равно: {0:F5}", b);

form2^ gform2 = gcnew form2;
gform2->Show();

gform2->textBox1->Text = this->textBox1->Text;
}

};
}



А в "form2" просто поменяйте private на public у элемента textBox ^


form2


#pragma once

namespace Two_Forms {

using namespace System;
.
.
.
public: System::Windows::Forms::TextBox^ textBox1; // <---
protected:

private:
/// <summary>
/// Требуется переменная конструктора.
/// </summary>
.
.
.



Результат:




Следующий урок >>