Пример – расчет рублевого эквивалента.

 

курс доллара – вещественное число вводится в TextBox1

сумма в долларах – целое число вводится в TextBox2

При нажатии Button1 вычисляется сумма в рублях и выводится в Label1

 

 

 

В Label1:

 

Text = ””

AutoSize = False – чтобы установить фиксированный размер поля,

а не автоматическое изменение под количество символов

 

В TextField1:

Multiline = False - Ввод только 1 строки

 

В button1

 

Text = “Вычислить”

Обработка события:

Click = button1_click имя метода взять по умолчанию

 

Сгенерирована пустая функция обработки:

 

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

}

 

копирование из лаб. 7

 

создать класс для вычислений:

проект-добавить класс (пустой, убрать управляемый)

 

#include "TestForm.h"

#include <stdio.h>

#include <string.h>

 

TestForm tf; // объект класса для вычислений

#pragma once

 

namespace WorkForm {

 

using namespace System;

using namespace System::ComponentModel;

using namespace System::Collections;

using namespace System::Windows::Forms;

using namespace System::Data;

using namespace System::Drawing;

using namespace Runtime::InteropServices; // для перевода строк - Маршализация

 

Текст задания вывода подсказки в label:

private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

{

label1->Text="введите курс и количество долларов";

}

 

Текст отклика на нажатие кнопки:

 

private: virtual System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)

{

String ^ s =gcnew String("");

s=textBox1->Text; // введенный текст в первое поле

char* chars =

( char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();

strcpy(tf.MyStr,chars); // запись во вспомогательный массив объекта tf

// класса TestForm

tf.sTB1=tf.MyStr; // строка для надписи textBox1

s=textBox2->Text;

chars = ( char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();

strcpy(tf.MyStr,chars);

tf.sTB2=tf.MyStr; // строка для надписи textBox2

tf.Calculate(); // вычисление вызов метода

String ^ss= gcnew String(tf.MyStr);

label1->Text=ss; // вывод в label1 результата

Marshal::FreeHGlobal(IntPtr((void*)chars));

} :