Описать структуру NOTE, содержащую следующие поля:
фамилия, имя;
номер телефона;
дата рождения (массив из трех чисел);
Создать параметризованную коллекцию для хранения описанной структуры. Вид коллекции выбрать самостоятельно. Написать Windows-приложение для работы с этой коллекцией, позволяющее выполнять:
добавление элемента в коллекцию;
считывание данных из файла;
запись данных в тот же или указанный файл;
сортировку данных по различным критериям;
поиск элемента по заданному полю;
вывод всех элементов, удовлетворяющих заданному условию;
удаление элемента из коллекции;
Приложение должно содержать меню и диалоговые окна и предусматривать обработку возможных ошибок пользователя с помощью исключений.
Не могу разобраться как из формы 2 передать данные в форму 1. Покажите, пожалуйста, на примере Добавление, к примеру.
По-разному можно. Например, добавить public свойства/функции и обращаться к ним.
namespace WindowsFormsApp3
{
public class Person
{
public string Name { get; set; }
public string Phone { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class AddPersonForm : Form
{
public Person Result { get; private set; }
public AddPersonForm()
{
InitializeComponent();
}
private void BtnOk_Click(object sender, EventArgs e)
{
var errors = new List<string>();
string name = tboxName.Text.Trim();
if (String.IsNullOrEmpty(name))
{
errors.Add("Enter name.");
}
string phone = new string(tboxPhone.Text.Where(Char.IsDigit).ToArray());
if (String.IsNullOrEmpty(phone))
{
errors.Add("Enter phone.");
}
else if (phone.Length < 6)
{
errors.Add("Too short phone.");
}
else if (phone.Length > 12)
{
errors.Add("Too long phone.");
}
if (errors.Any())
{
MessageBox.Show(String.Join(Environment.NewLine, errors), "", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Result = new Person
{
Name = name,
Phone = phone,
};
DialogResult = DialogResult.OK;
}
private void BtnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}
}
}
using System;
using System.Windows.Forms;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void BtnAdd_Click(object sender, EventArgs e)
{
var form = new AddPersonForm();
if (form.ShowDialog() == DialogResult.OK)
{
var person = form.Result;
MessageBox.Show("Added: " + person.Name);
}
}
}
}