ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.09.2019
Просмотров: 420
Скачиваний: 1

â 2 Windows Forms. ÐлеменÑÑ ÑпÑавлениÑ
Ðадание
СоздаÑÑ ÑоÑÐ¼Ñ (или ÑоÑÐ¼Ñ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° агÑегиÑÑемÑÑ Ð¾Ð±ÑекÑов).
РазмеÑÑиÑÑ Ð½Ð° ней ÐУ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð°/вÑвода инÑоÑмаÑии об обÑекÑе (ÑоздаÑÑ Ñвои
ÑипÑ). Ðа ÑоÑме ÑазмеÑÑиÑÑ Ð½Ðµ менее 9-и ÑазлиÑнÑÑ
Ñипов ÐУ(Ñадиокнопки,
ÑпиÑки, Ð¿Ð¾Ð»Ñ Ð²Ð²Ð¾Ð´Ð°, меÑки, кнопки, ÑлайдеÑÑ, календаÑÑ Ð¸ Ñ.д.).
СоздаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе кнопки Ð´Ð»Ñ ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ð¾Ð¹
инÑоÑмаÑии и вÑвода (оÑобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑоÑ
ÑаненнÑÑ
даннÑÑ
). ÐапиÑÑ
ÑоÑ
ÑанÑемÑÑ
обÑекÑов и ÑÑение вÑполнÑÑÑ Ð²./из ÑÐ°Ð¹Ð»Ñ Ñипа xml и/или json.
ÐÑганизоваÑÑ Ð²Ð°Ð»Ð¸Ð´Ð°ÑÐ¸Ñ Ð²Ð²Ð¾Ð´Ð¸Ð¼ÑÑ Ð¿Ð¾Ð»ÑзоваÑелем даннÑÑ .
ÐаÑианÑ
Ðадание
1, 9
УнивеÑÑиÑеÑ:
ÐбÑÐµÐºÑ â «СÑÑденÑ». ÐолÑ: ФÐÐ, возÑаÑÑ,
ÑпеÑиалÑноÑÑÑ, даÑа ÑождениÑ, кÑÑÑ, гÑÑппа, ÑÑедний балл, пол,
адÑеÑа и дÑ. ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐдÑеÑ». ÐолÑ: гоÑод, индекÑ,
ÑлиÑа, дом, кваÑÑиÑа.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐеÑÑо ÑекÑÑей
ÑабоÑÑ». ÐолÑ: компаниÑ, должноÑÑÑ, ÑÑÑаж и Ñ.д.
2, 10
Ðанк.
ÐбÑÐµÐºÑ â «СÑеÑ». ÐолÑ: номеÑ, Ñип вклада, баланÑ, даÑа
оÑкÑÑÑиÑ, владелеÑ, подклÑÑение ÑÐ¼Ñ Ð¾Ð¿Ð¾Ð²ÐµÑениÑ, подклÑÑение
инÑеÑнеÑ-банкинга и Ñ.д. ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐладелеÑ».
ÐолÑ: ФÐÐ, даÑа ÑождениÑ, паÑпоÑÑнÑе даннÑе и Ñ.д.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐÑÑоÑÐ¸Ñ Ð¾Ð¿ÐµÑаÑий».
ÐолÑ: Ñип опеÑаÑии, ÑÑмма, даÑа и Ñ.д.
3, 11
УÑебнÑй оÑдел
. ÐбÑÐµÐºÑ â «ÐиÑÑиплина». ÐолÑ: название,
ÑемеÑÑÑ, кÑÑÑ, ÑпеÑиалÑноÑÑÑ, колиÑеÑÑво лекÑий, колиÑеÑÑво
лабоÑаÑоÑнÑÑ
, вид конÑÑолÑ, колиÑеÑÑво ÑÑÑденÑов, лекÑÐ¾Ñ Ð¸ Ñ.д.
ÐгÑегиÑÑемÑй обÑекÑ: «ÐекÑоÑ». ÐолÑ: каÑедÑа, ФÐÐ, аÑдиÑоÑиÑ
и Ñ.д.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «СпиÑок лиÑеÑаÑÑÑÑ».
ÐолÑ: название, авÑоÑ, год и Ñ.д.
4, 12
ÐиблиоÑека.
ÐбÑÐµÐºÑ â «Ðнига». ÐолÑ: название, УÐÐ, колиÑеÑÑво
ÑÑÑаниÑ, издаÑелÑÑÑво, год, налиÑие CD, DVD, ÑпиÑок авÑоÑов,
даÑа поÑÑÑплениÑ. ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐвÑоÑ»: ФÐÐ, ÑÑÑана,
пол и Ñ.д.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐздаÑелÑÑÑво». ÐолÑ:
название, ÑÑÑана, гоÑод, год оÑнованиÑ, ÑаÑÑное или
гоÑÑдаÑÑÑвенное, и Ñ.д.

ÐаÑианÑ
Ðадание
5, 13
ÐоопаÑк.
ÐбÑÐµÐºÑ Â«ÐивоÑное». ÐолÑ: название, Ñип, опиÑание,
оÑÑÑд, возÑаÑÑ, клаÑÑ, занеÑен в кÑаÑнÑÑ ÐºÐ½Ð¸Ð³Ñ, аÑеал обиÑаниÑ
(ÑпиÑок меÑÑ), кÑÑаÑÐ¾Ñ (оÑвеÑÑÑвенное лиÑо), даÑа поÑÑÑÐ¿Ð»ÐµÐ½Ð¸Ñ Ð¸
Ñ.д. ÐгÑегиÑÑемÑй обÑÐµÐºÑ Â«ÐеÑÑо обиÑаниÑ». ÐолÑ: конÑиненÑ,
ÑиÑоÑа, долгоÑа, Ñайон, плоÑÐ°Ð´Ñ (км
2
) и Ñ.д.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ â «ÐÑÑаÑоÑ».
ÐбÑзаÑелÑнÑе полÑ: ФÐÐ, ÑÑÑана и Ñ.д.
6, 14
IT лабоÑаÑоÑиÑ.
ÐбÑÐµÐºÑ Â«ÐомпÑÑÑеÑ». ÐолÑ: Ñип компÑÑÑеÑа
(ÑеÑвеÑ, ÑабоÑÐ°Ñ ÑÑанÑиÑ, ноÑÑбÑк â¦..), пÑоÑеÑÑоÑ, видеокаÑÑа,
ÑÐ°Ð·Ð¼ÐµÑ Ð¸ Ñип ÐÐУ, ÑÐ°Ð·Ð¼ÐµÑ Ð¸ Ñип жеÑÑкого диÑка, даÑа
пÑиобÑеÑÐµÐ½Ð¸Ñ Ð¸ Ñ.д. ÐгÑегиÑÑемÑй обÑÐµÐºÑ Â«ÐÑоÑеÑÑоÑ». ÐолÑ:
пÑоизводиÑелÑ, ÑеÑиÑ, моделÑ, колиÑеÑÑво ÑÐ´ÐµÑ Ð¿ÑоÑеÑÑоÑа, Ñип
пÑоÑеÑÑоÑа, ÑаÑÑоÑа, макÑималÑÐ½Ð°Ñ ÑаÑÑоÑа, ÑазÑÑдноÑÑÑ
аÑÑ
иÑекÑÑÑÑ, ÑÐ°Ð·Ð¼ÐµÑ ÐºÑÑа L1-L3.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ Â«ÐидеокаÑÑа». ÐолÑ:
пÑоизводиÑелÑ, ÑеÑиÑ, моделÑ, ÑаÑÑоÑа, поддеÑжка DiretX11,
обÑем памÑÑи.
7, 15
ÐÑÑопоÑÑ.
ÐбÑÐµÐºÑ Â«Ð¡Ð°Ð¼Ð¾Ð»ÐµÑ». ÐолÑ: ID, Ñип (паÑÑажиÑÑкий,
гÑÑзовой, военнÑй), Ð¼Ð¾Ð´ÐµÐ»Ñ (Airbusâ¦.) , ÑÐ»ÐµÐ½Ñ Ñкипажа (ÑпиÑок),
колиÑеÑÑво меÑÑ, год вÑпÑÑка, гÑÑзоподÑемноÑÑÑ, даÑа поÑледнего
ÑеÑ
. обÑлÑÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸ Ñ.п. ÐгÑегиÑÑемÑй обÑÐµÐºÑ Â«Ð§Ð»ÐµÐ½ Ðкипажа».
ÐолÑ: ФÐÐ, должноÑÑÑ (пилоÑ, ÑÑÑаÑдеÑÑаâ¦), возÑаÑÑ, ÑÑаж и Ñ.д.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ Â«ÐÑоизводиÑелÑ». ÐолÑ:
название, ÑÑÑана, год оÑнованиÑ, ÑÐ¸Ð¿Ñ Ð¿ÑоизводимÑÑ
ÑамолеÑов
и Ñ.д.
8, 16
Ðагазин.
ÐÑновной обÑÐµÐºÑ Â«Ð¢Ð¾Ð²Ð°Ñ». ÐолÑ: название,
инвенÑаÑнÑй номеÑ, ÑазмеÑ, веÑ, Ñип, даÑа поÑÑÑплениÑ,
колиÑеÑÑво, Ñена, пÑоизводиÑелÑ. ÐгÑегиÑÑемÑй обÑекÑ
«ÐÑоизводиÑелÑ». ÐолÑ: оÑганизаÑиÑ, ÑÑÑана, адÑеÑ, ÑелеÑон.
ÐополниÑелÑно: ÐгÑегиÑÑемÑй обÑÐµÐºÑ Â«ÐладовÑик». ÐолÑ: ФÐÐ,
ÑÑаж, адÑÐµÑ Ð¸ Ñ.д.
ÐополниÑелÑнÑе ÑказаниÑ
УпÑоÑеннÑй пÑимеÑ
using
System;
using
System.Collections.Generic;
using
System.IO;
using
System.Linq;

using
System.Xml.Serialization;
namespace
NetW
{
class
Program
{
static
void
Main()
{
var
role =
new
List
<
Role
> {
new
Role
{ Id =
Guid
.NewGuid(), Name =
"User"
}
};
var
users =
new
List
<
User
>
{
new
User
(
"Ivan"
,
"Ivanov"
, 24)
{
Roles = role,
Type =
UserType
.New,
Sex =
'M'
},
new
User
(
"Nikita"
,
"Nikolaev"
, 24)
{
Roles = role,
Type =
UserType
.New,
Sex =
'M'
},
};
XmlSerializeWrapper
.Serialize(users,
"users.xml"
);
var
deserializeUsers =
XmlSerializeWrapper
.Deserialize<
List
<
User
>>(
"users.xml"
);
XmlSerializeWrapper
.Serialize(users.First(),
"user.xml"
);
var
deserializeUser =
XmlSerializeWrapper
.Deserialize<
User
>(
"user.xml"
);
}
}
[
Serializable
]
[
XmlRoot
(Namespace =
"NetW"
)]
[
XmlType
(
"user"
)]
public
class
User
{
public
User()
{
Id =
Guid
.NewGuid();
}
public
User(
string
firstName,
string
lastName,
int
age) :
this
()
{
FirstName = firstName;
LastName = lastName;
Age = age;
}
[
XmlIgnore
]
public
char
Sex {
get
;
set
; }
[
XmlElement
(ElementName =
"id"
)]
public
Guid
Id {
get
;
set
; }
[
XmlElement
(ElementName =
"name"
)]
public
string
FirstName {
get
;
set
; }
[
XmlElement
(ElementName =
"surname"
)]
public
string
LastName {
get
;
set
; }
[
XmlElement
(ElementName =
"age"
)]
public
int
Age {
get
;
set
; }
[
XmlElement
(ElementName =
"type"
)]

public
UserType
Type {
get
;
set
; }
[
XmlArray
(
"roles"
)]
[
XmlArrayItem
(
"role"
)]
public
List
<
Role
> Roles {
get
;
set
; }
}
[
Serializable
]
public
class
Role
{
public
Guid
Id {
get
;
set
; }
public
string
Name {
get
;
set
; }
}
[
Serializable
]
public
enum
UserType
{
[
XmlEnum
(
"L"
)]
Locked,
[
XmlEnum
(
"N"
)]
New
}
public
static
class
XmlSerializeWrapper
{
public
static
void
Serialize<
T
>(
T
obj,
string
filename)
{
XmlSerializer
formatter =
new
XmlSerializer
(
typeof
(
T
));
using
(
FileStream
fs =
new
FileStream
(filename,
FileMode
.OpenOrCreate))
{
formatter.Serialize(fs, obj);
}
}
public
static
T
Deserialize<
T
>(
string
filename)
{
T
obj;
using
(
FileStream
fs =
new
FileStream
(filename,
FileMode
.OpenOrCreate))
{
XmlSerializer
formatter =
new
XmlSerializer
(
typeof
(
T
));
obj = (
T
)formatter.Deserialize(fs);
}
return
obj;
}
}
}
ÐлеменÑÑ ÑпÑавлениÑ
ÐзнакомиÑÑÑÑ Ñ ÐºÐ»Ð°ÑÑами ÐУ иÑ
меÑодами, ÑвойÑÑвами и пÑимеÑами
ÑабоÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ на:
https://msdn.microsoft.com/ru-ru/library/3xdhey7w(v=vs.110).aspx
ÐлаÑÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ XML
https://msdn.microsoft.com/ru-ru/library/2bcctyt8(v=vs.110).aspx

ÐÑовеÑка даннÑÑ , вводимÑÑ Ð¿Ð¾Ð»ÑзоваÑелем
ÐÑакÑиÑеÑки лÑбое пÑиложение полÑÑÐ°ÐµÑ Ð´Ð°Ð½Ð½Ñе Ð¾Ñ Ð¿Ð¾Ð»ÑзоваÑелÑ. ÐÑли
ÑазÑабоÑÑик Ñ
оÑÐµÑ Ð´Ð¾Ð±Ð¸ÑÑÑÑ ÑÑабилÑной ÑабоÑÑ Ñвоего пÑиложениÑ, Ñо ÑледÑеÑ
пÑидеÑживаÑÑÑÑ Ð¿Ñавила: «
ÐÐ¸ÐºÐ°ÐºÐ°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ð°Ñ Ð¿Ð¾Ð»ÑзоваÑелем не
ÑвлÑеÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð½Ð°Ð´ÐµÐ¶Ð½Ð¾Ð¹ и Ð¿Ð¾Ð´Ð»ÐµÐ¶Ð¸Ñ Ð¾Ð±ÑзаÑелÑной пÑовеÑке
».
ÐÑовеÑка Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑÑÑеÑÑвлÑÑÑÑÑ Ð´Ð²ÑÐ¼Ñ ÑпоÑобами.
ÐÑовеÑка на ÑÑовне полÑ
Ðногда Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пÑовеÑÑÑÑ Ð´Ð°Ð½Ð½Ñе ÑÑÐ°Ð·Ñ Ð¿Ð¾Ñле Ð¸Ñ Ð²Ð²Ð¾Ð´Ð°. СамÑм
ÑаÑпÑоÑÑÑаненнÑм ÑлеменÑом ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²Ð²Ð¾Ð´Ð° даннÑÑ
ÑвлÑеÑÑÑ TextBox.
У него в ÑаÑÑноÑÑи еÑÑÑ ÑвойÑÑво MaxLength, коÑоÑое огÑаниÑÐ¸Ð²Ð°ÐµÑ ÑиÑло
Ñимволов, коÑоÑÑе можно ввеÑÑи в ÑекÑÑовое поле.
ÐлеменÑÑ ÑпÑавлениÑ, пÑинимаÑÑие ввод Ñ ÐºÐ»Ð°Ð²Ð¸Ð°ÑÑÑÑ Ð³ÐµÐ½ÐµÑиÑÑÑÑ
ÑледÑÑÑие ÑобÑÑиÑ:
KeyDown, KeyUp â лÑÐ±Ð°Ñ ÐºÐ»Ð°Ð²Ð¸Ñа нажаÑа, лÑÐ±Ð°Ñ ÐºÐ»Ð°Ð²Ð¸Ñа оÑпÑÑена.
Ðогда полÑзоваÑÐµÐ»Ñ Ð½Ð°Ð¶Ð¸Ð¼Ð°ÐµÑ ÐºÐ»Ð°Ð²Ð¸ÑÑ, коÑоÑой ÑооÑвеÑÑÑвÑÐµÑ Ð·Ð½Ð°Ñение
ASCII, генеÑиÑÑеÑÑÑ ÑобÑÑие KeyPress. Ðменно поÑледнее ÑобÑÑие
пÑименÑеÑÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки «на леÑÑ» вводимÑÑ
Ñимволов. ÐÑи генеÑаÑии
ÑобÑÑÐ¸Ñ Ð¾Ð±ÑабоÑÑик полÑÑÐ°ÐµÑ ÑкземплÑÑ ÐºÐ»Ð°ÑÑа KeyPressEventArgs. У него
еÑÑÑ Ð´Ð²Ð° ÑвойÑÑва: KeyChar â возвÑаÑÐ°ÐµÑ Ð½Ð°Ð¶Ð°ÑÑй Ñимвол. ÐнаÑение ÑÑого
ÑвойÑÑва можно пÑовеÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑаÑиÑеÑкиÑ
меÑодов клаÑÑа Char на
пÑинадлежноÑÑÑ Ðº Ñой или иной гÑÑппе.
Char.IsDigit,
Char.IsLetter,
Char.IsLetterOrDigit,
Char.IsPunctuation,
Char.IsLower, Char.IsUpper.
ÐÑоÑое ÑвойÑÑво â Handled. ÐпÑеделÑеÑ, бÑло ли ÑобÑÑие обÑабоÑано.
ÐÑли оно пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°Ñение false, Ñо ÑобÑÑие ÑÑиÑаеÑÑÑ Ð½ÐµÐ¾Ð±ÑабоÑаннÑм и
пеÑеÑÑлаеÑÑÑ Ð¾Ð¿ÐµÑаÑионной ÑиÑÑеме Ð´Ð»Ñ Ð´Ð°Ð»ÑнейÑей обÑабоÑки, еÑли true â Ñо
ÑобÑÑие ÑÑиÑаеÑÑÑ Ð¾Ð±ÑабоÑаннÑм и далÑнейÑиÑ
дейÑÑвий не пÑоиÑÑ
одиÑ.
ÐапÑимеÑ, Ð¼Ñ Ñ
оÑим оÑганизоваÑÑ ÑекÑÑовое поле, кÑда можно вводиÑÑ ÑолÑко
ÑиÑÑÑ.
private
void
myTextBox_KeyPress(
object
sender, KeyPressEventArgs e)
{
e.Handled = !Char.IsDigit(e.KeyChar);
}
ÐдеÑÑ Ð¾Ð±ÑзаÑелÑно оÑÑиÑание. Ðднако, Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾Ð»ÑÑиÑÑÑÑ ÑиÑÑаÑиÑ,
когда каждÑй оÑделÑнÑй Ñимвол ÑвлÑеÑÑÑ Ð¿ÑавилÑно введеннÑм, но веÑÑ ÑекÑÑ
ÑвлÑеÑÑÑ Ð½ÐµÐºÐ¾ÑÑекÑнÑм. ÐапÑимеÑ, введеннÑй ÑекÑÑ ÑвлÑеÑÑÑ ÑиÑлом, но оно
вÑÑ
Ð¾Ð´Ð¸Ñ Ð·Ð° допÑÑÑимÑе логикой пÑогÑÐ°Ð¼Ð¼Ñ Ð¿ÑеделÑ.
ÐÐ»Ñ Ñакой пÑовеÑки иÑполÑзÑеÑÑÑ Ð¾Ð±ÑабоÑка ÑобÑÑÐ¸Ñ Validating, коÑоÑое
генеÑиÑÑеÑÑÑ ÐÐÐ ÐРпоÑеÑей ÑокÑÑа ÑлеменÑом ÑпÑавлениÑ. СобÑÑие бÑдеÑ
ÑгенеÑиÑовано ÑолÑко в Ñом ÑлÑÑае, еÑли ÑвойÑÑво CausesValidation Ñ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾
ÑлеменÑа и Ñ ÑлеменÑа полÑÑаÑÑего ÑокÑÑ ÑледÑÑÑим ÑÑÑановлено в true. Ð
обÑабоÑÑик
ÑобÑÑиÑ
пеÑедаеÑÑÑ
обÑекÑ
клаÑÑа
System.ComponentModel.CancelEventArgs. У ÑÑого клаÑÑа еÑÑÑ ÑвойÑÑво