Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Передача данных в конструктор Form2



Изменяем конструктор Form2

public Form2(string data)

{

InitializeComponent();

//Обрабатываем данные

//Или записываем их в поле

this.data = data;

}

string data;

 

А создаем форму в любом месте Form1 так:

Form2 f = new Form2(this.textBox1.Text);

f.ShowDialog();

//Или f.Show();

 

- Возможна передача только из более ранней формы в более позднюю

 

Передача ссылки в конструктор

Изменяем конструктор Form2

public Form2(Form1 f1)

{

InitializeComponent();

//Обрабатываем данные

//Или записываем их в поле

string s = f1.textBox1.Text;

}

 

А создаем форму в любом месте Form1 так, т.е. передаем ей ссылку на первую форму

Form2 f = new Form2(this);

f.ShowDialog();

//Или f.Show();

 

+ Доступ ко всем открытым полям/функциям первой формы

+ Передача данных возможна в обе стороны

 

5. Используем свойство 'родитель'

При создании второй формы устанавливаем владельца

Form2 f = new Form2();

f.Owner = this;

f.ShowDialog();

Во второй форме определяем владельца

Form1 main = this.Owner as Form1;

if(main != null)

{

string s = main.textBox1.Text;

main.textBox1.Text = "OK";

}

 

+ Доступ ко всем открытым полям/функциям первой формы

+ Передача данных возможна в обе стороны

 

6. Используем отдельный класс
Создаем отдельный класс, лучше статический, в основном namespace, т.е. например в файле Program.cs

static class Data

{

public static string Value { get; set; }

}

 

Его открытые свойства/методы доступны из любой формы.

Data.Value = "111";

 

+ Самый удобный способ, когда данные активно используются несколькими формами.

 

 

Пример

Создадим приложение. На первой форме расположим текстовое поле, в которое пользователь может ввести информацию. По нажатию кнопки на первой форме загружается вторая форма. На второй форме расположено текстовое поле. В нем отражается информация, введенная пользователем на первой форме.

 

Первая форма

 

 

Вторая форма

Для передачи данных используем создание статического класса (в Program.cs)

static class Data

{

public static string Value { get; set; }

}

На первой форме переменная Data получает значение текста из текстового элемента

Data.Value = textBox1.Text;

На второй форме текстовый элемент получает значение переменной Data

textBox1.Text = Data.Value;

 

Текст программы

Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace передача_данных

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

Data.Value = textBox1.Text;

Form2 f = new Form2(); // создаем

f.Show(); // показываем вар2

}

}

}

Form2.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace передача_данных

{

public partial class Form2 : Form

{

public Form2()

{

InitializeComponent();

}

private void Form2_Load(object sender, EventArgs e)

{

textBox1.Text = Data.Value;

}

}

}

Program.cs

using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace передача_данных

{

static class Program

{

/// <summary>

/// Главная точка входа для приложения.

/// </summary>

[STAThread]

static void Main()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

Application.Run(new Form1());

}

}

static class Data

{

public static string Value { get; set; }

}

}

 

Вид работающего приложения:

 

 

Задание

Создать приложение с двумя формами в Visual Studio 2012 C#. Осуществить передачу данных с первой формы на вторую. Протестировать приложение.

 

Рассмотреть возможность передачи данных, созданных на первой форме, на третью форму.

 

Рассмотреть возможность передачи данных в обратном направлении – со второй или третьей формы на первую.

 

Практическая работа №17 Ведение таблицы БД в Visual Studio 2012 C#

1. Цель работы:

Изучить возможности корректного изменения таблицы БД вVisual Studio 2012 C#.

Создать приложение для демонстрации работы корректного ведения таблицы БД.

 






Читайте также:

Последнее изменение этой страницы: 2016-03-15; Просмотров: 299; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.01 с.) Главная | Обратная связь