Skip to content

Commit 2fd69c2

Browse files
committed
Windows-Forms
УСЛОВИЕ: - Создать окно с двумя контроллерами ListBox. - Cоздать текстовое поле Text. Реализовать добавление новых данных в ListBox из тектового поля, при нажатии кнопки "Добавить". - Создать кнопку "Копировать", выполняющую копированию, элементов одного списка в другой список - Реализовать кнопку "Убрать" выполняющую удаление выделенных элементов из списка "копий"
1 parent 3aa1bea commit 2fd69c2

File tree

10 files changed

+677
-0
lines changed

10 files changed

+677
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 14
4+
VisualStudioVersion = 14.0.23107.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsingListBox", "UsingListBox\UsingListBox.csproj", "{4CDEE877-D48B-43EC-AF0A-D20DB9C2D469}"
7+
EndProject
8+
Global
9+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
10+
Debug|Any CPU = Debug|Any CPU
11+
Release|Any CPU = Release|Any CPU
12+
EndGlobalSection
13+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
14+
{4CDEE877-D48B-43EC-AF0A-D20DB9C2D469}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
15+
{4CDEE877-D48B-43EC-AF0A-D20DB9C2D469}.Debug|Any CPU.Build.0 = Debug|Any CPU
16+
{4CDEE877-D48B-43EC-AF0A-D20DB9C2D469}.Release|Any CPU.ActiveCfg = Release|Any CPU
17+
{4CDEE877-D48B-43EC-AF0A-D20DB9C2D469}.Release|Any CPU.Build.0 = Release|Any CPU
18+
EndGlobalSection
19+
GlobalSection(SolutionProperties) = preSolution
20+
HideSolutionNode = FALSE
21+
EndGlobalSection
22+
EndGlobal
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
5+
</startup>
6+
</configuration>
Lines changed: 269 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,269 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Drawing;
4+
using System.Linq;
5+
using System.Text;
6+
using System.Threading.Tasks;
7+
using System.Windows.Forms;
8+
9+
namespace UsingListBox
10+
{
11+
class FormMain : Form
12+
{
13+
//ПОЛЯ КЛАССА
14+
//+-------------------------------------------------------------------+
15+
16+
private ListBox listBoxCars;
17+
private ListBox listBoxCarsCopy;
18+
private TextBox textBoxNewListItem;
19+
private Label labelCars;
20+
private Label labelCarsCopy;
21+
private Label labelCarAddNew;
22+
private Button buttonAdd;
23+
private Button buttonCopy;
24+
private Button buttonRemove;
25+
private Button buttonOk;
26+
private Button buttonCanсel;
27+
28+
29+
30+
//КОНСТРУКТОР КЛАССА
31+
//+-------------------------------------------------------------------+
32+
public FormMain()
33+
{
34+
this.FormMainInitialization();
35+
36+
this.ListBoxCarsInitialization();
37+
this.ListBoxCarsCopyInitialization();
38+
39+
this.TextBoxNewListItemInitialization();
40+
41+
this.LabelCarsInitialization();
42+
this.LabelCarAddNewInitialization();
43+
this.LabelCarsCopyInitialization();
44+
45+
this.ButtonAddInitialization();
46+
this.ButtonCopyInitialization();
47+
this.ButtonRemoveInitialization();
48+
49+
this.ButtonOkInitialization();
50+
this.ButtonCanсelInitialization();
51+
}
52+
53+
54+
55+
//МЕТОДЫ КЛАССА
56+
//+-------------------------------------------------------------------+
57+
58+
/// <summary>
59+
/// Создание главного окна программы
60+
/// </summary>
61+
private void FormMainInitialization()
62+
{
63+
this.ClientSize = new Size(400, 400);
64+
this.StartPosition = FormStartPosition.CenterScreen;
65+
this.BackColor = Color.DarkSlateGray;
66+
this.Text = "Применение контроллера ListBox";
67+
this.ForeColor = Color.White;
68+
this.FormBorderStyle = FormBorderStyle.FixedSingle;
69+
}
70+
71+
72+
/// <summary>
73+
/// Создание списка машин
74+
/// </summary>
75+
private void ListBoxCarsInitialization()
76+
{
77+
this.listBoxCars = new ListBox();
78+
this.Controls.Add(this.listBoxCars);
79+
this.listBoxCars.Size = new Size(100, 150);
80+
this.listBoxCars.Location = new Point(50, 50);
81+
this.listBoxCars.SelectionMode = SelectionMode.MultiExtended;
82+
}
83+
/// <summary>
84+
/// Создание списка копий названий
85+
/// </summary>
86+
private void ListBoxCarsCopyInitialization()
87+
{
88+
this.listBoxCarsCopy = new ListBox();
89+
this.Controls.Add(this.listBoxCarsCopy);
90+
this.listBoxCarsCopy.Size = new Size(100, 150);
91+
this.listBoxCarsCopy.Location = new Point(250, 50);
92+
}
93+
/// <summary>
94+
/// Создание текстового поля для ввода новых названий
95+
/// </summary>
96+
private void TextBoxNewListItemInitialization()
97+
{
98+
this.textBoxNewListItem = new TextBox();
99+
this.Controls.Add(this.textBoxNewListItem);
100+
this.textBoxNewListItem.Location = new Point(50, 250);
101+
this.textBoxNewListItem.Multiline = false;
102+
}
103+
104+
105+
/// <summary>
106+
/// Создание инфо подписи к списку названий
107+
/// </summary>
108+
private void LabelCarsInitialization()
109+
{
110+
this.labelCars = new Label();
111+
this.Controls.Add(this.labelCars);
112+
this.labelCars.Size = new Size(105, 28);
113+
this.labelCars.Location = new Point(50, 25);
114+
this.labelCars.Text = "Выберите марку авто:";
115+
}
116+
/// <summary>
117+
/// Создание инфо подписи к списку с копиями названий
118+
/// </summary>
119+
private void LabelCarsCopyInitialization()
120+
{
121+
this.labelCarsCopy = new Label();
122+
this.Controls.Add(this.labelCarsCopy);
123+
this.labelCarsCopy.Size = new Size(105, 28);
124+
this.labelCarsCopy.Location = new Point(250, 25);
125+
this.labelCarsCopy.Text = "Выбранные марки авто:";
126+
}
127+
/// <summary>
128+
/// Создание инфо подписи текстовому поля для ввода новых
129+
/// названий
130+
/// </summary>
131+
private void LabelCarAddNewInitialization()
132+
{
133+
this.labelCarAddNew = new Label();
134+
this.Controls.Add(this.labelCarAddNew);
135+
this.labelCarAddNew.Size = new Size(105, 14);
136+
this.labelCarAddNew.Location = new Point(50, 235);
137+
this.labelCarAddNew.Text = "Новая марка авто:";
138+
}
139+
140+
141+
/// <summary>
142+
/// Создание кнопки "Добавить".
143+
/// </summary>
144+
private void ButtonAddInitialization()
145+
{
146+
this.buttonAdd = new Button();
147+
this.Controls.Add(this.buttonAdd);
148+
this.buttonAdd.Click += new EventHandler(this.ButtonAddClickOn);
149+
int x = this.textBoxNewListItem.Location.X +
150+
this.textBoxNewListItem.Width + 10;
151+
int y = this.textBoxNewListItem.Location.Y - 1;
152+
this.buttonAdd.Location = new Point(x, y);
153+
this.buttonAdd.Text = "Add";
154+
}
155+
/// <summary>
156+
/// Создание кнопки "Копировать"
157+
/// </summary>
158+
private void ButtonCopyInitialization()
159+
{
160+
this.buttonCopy = new Button();
161+
this.Controls.Add(this.buttonCopy);
162+
this.buttonCopy.Click += new EventHandler(ButtonCopyClickOn);
163+
int x = this.listBoxCars.Location.X +
164+
this.listBoxCars.Width + 10;
165+
int y = this.listBoxCars.Location.Y;
166+
this.buttonCopy.Location = new Point(x, y);
167+
this.buttonCopy.Text = "Copy >>";
168+
}
169+
/// <summary>
170+
/// Создание кнопки "Убрать"
171+
/// </summary>
172+
private void ButtonRemoveInitialization()
173+
{
174+
this.buttonRemove = new Button();
175+
this.Controls.Add(this.buttonRemove);
176+
this.buttonRemove.Click += new EventHandler(ButtonRemoveClickOn);
177+
int x = this.listBoxCars.Location.X +
178+
this.listBoxCars.Width + 10;
179+
int y = this.listBoxCars.Location.Y +
180+
this.buttonRemove.Height + 10; ;
181+
this.buttonRemove.Location = new Point(x, y);
182+
this.buttonRemove.Text = "<< Remove <<";
183+
}
184+
/// <summary>
185+
/// Создание кнопки "Ок"
186+
/// </summary>
187+
private void ButtonOkInitialization()
188+
{
189+
this.buttonOk = new Button();
190+
this.Controls.Add(this.buttonOk);
191+
this.buttonOk.Click += new EventHandler(ButtonOkClickOn);
192+
this.buttonOk.DialogResult = DialogResult.OK;
193+
this.buttonOk.Location = new Point(190, 325);
194+
this.buttonOk.Text = "Ok";
195+
}
196+
/// <summary>
197+
/// Создание кнопки "Отмена"
198+
/// </summary>
199+
private void ButtonCanсelInitialization()
200+
{
201+
this.buttonCanсel = new Button();
202+
this.Controls.Add(this.buttonCanсel);
203+
this.buttonCanсel.Click += new EventHandler(ButtonCanсelClickOn);
204+
this.buttonCanсel.DialogResult = DialogResult.Cancel;
205+
int x = this.buttonOk.Location.X +
206+
this.buttonOk.Width + 10;
207+
int y = 325;
208+
this.buttonCanсel.Location = new Point(x, y);
209+
this.buttonCanсel.Text = "Canсel";
210+
}
211+
212+
213+
/// <summary>
214+
/// Обработчик события нажатия кнопки "Добавть".
215+
/// Добавляет в список названий, новый элемент.
216+
/// </summary>
217+
private void ButtonAddClickOn(Object sender, EventArgs e)
218+
{
219+
if (this.textBoxNewListItem.Text != "")
220+
{
221+
StringBuilder newName = new StringBuilder(this.textBoxNewListItem.Text.Trim().ToLower());
222+
newName[0] = Char.ToUpper(newName[0]);
223+
this.listBoxCars.Items.Add(newName);
224+
this.textBoxNewListItem.Text = "";
225+
}
226+
}
227+
/// <summary>
228+
/// Обработчик события нажатия кнопки "Копировать".
229+
/// Копирует название элемента списка в другой список
230+
/// </summary>
231+
private void ButtonCopyClickOn(Object sender, EventArgs e)
232+
{
233+
for (int i = 0; i < this.listBoxCars.SelectedItems.Count; ++i)
234+
{
235+
this.listBoxCarsCopy.Items.Add(this.listBoxCars.SelectedItems[i]);
236+
}
237+
}
238+
/// <summary>
239+
/// Обработчик события нажатия кнопки "Убрать".
240+
/// Убирает название элемента из списка с копиями названий.
241+
/// </summary>
242+
private void ButtonRemoveClickOn(Object sender, EventArgs e)
243+
{
244+
ListBox.SelectedObjectCollection selected = this.listBoxCarsCopy.SelectedItems;
245+
for (int i = 0; i < selected.Count; ++i)
246+
{
247+
this.listBoxCarsCopy.Items.Remove(selected[i]);
248+
}
249+
}
250+
/// <summary>
251+
/// Обработчик события нажатия кнопки "Ок".
252+
/// Закрывает окно программы.
253+
/// </summary>
254+
private void ButtonOkClickOn(Object sender, EventArgs e)
255+
{
256+
this.Dispose();
257+
}
258+
/// <summary>
259+
/// Обработчик события нажатия кнопки "Отмена".
260+
/// Закрывает окно программы.
261+
/// </summary>
262+
/// <param name="sender"></param>
263+
/// <param name="e"></param>
264+
private void ButtonCanсelClickOn(Object sender, EventArgs e)
265+
{
266+
this.Dispose();
267+
}
268+
}
269+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
//+---------------------------------------------------------------------------+
2+
//УСЛОВИЕ:
3+
/*
4+
- Создать окно с двумя контроллерами ListBox.
5+
- Cоздать текстовое поле Text. Реализовать добавление новых данных
6+
в ListBox из тектового поля, при нажатии кнопки "Добавить".
7+
- Создать кнопку "Копировать", выполняющую копированию, элементов одного
8+
списка в другой список
9+
- Реализовать кнопку "Убрать" выполняющую удаление выделенных элементов
10+
из списка "копий"
11+
*/
12+
//+---------------------------------------------------------------------------+
13+
14+
using System;
15+
using System.Collections.Generic;
16+
using System.Linq;
17+
using System.Threading.Tasks;
18+
using System.Windows.Forms;
19+
20+
namespace UsingListBox
21+
{
22+
static class Program
23+
{
24+
/// <summary>
25+
/// Главная точка входа для приложения.
26+
/// </summary>
27+
[STAThread]
28+
static void Main()
29+
{
30+
Application.EnableVisualStyles();
31+
Application.SetCompatibleTextRenderingDefault(false);
32+
Application.Run(new FormMain());
33+
}
34+
}
35+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// Управление общими сведениями о сборке осуществляется с помощью
6+
// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
7+
// связанные со сборкой.
8+
[assembly: AssemblyTitle("UsingListBox")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("")]
12+
[assembly: AssemblyProduct("UsingListBox")]
13+
[assembly: AssemblyCopyright("Copyright © 2015")]
14+
[assembly: AssemblyTrademark("")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми
18+
// для COM-компонентов. Если требуется обратиться к типу в этой сборке через
19+
// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
20+
[assembly: ComVisible(false)]
21+
22+
// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
23+
[assembly: Guid("4cdee877-d48b-43ec-af0a-d20db9c2d469")]
24+
25+
// Сведения о версии сборки состоят из следующих четырех значений:
26+
//
27+
// Основной номер версии
28+
// Дополнительный номер версии
29+
// Номер сборки
30+
// Редакция
31+
//
32+
// Можно задать все значения или принять номера сборки и редакции по умолчанию
33+
// используя "*", как показано ниже:
34+
// [assembly: AssemblyVersion("1.0.*")]
35+
[assembly: AssemblyVersion("1.0.0.0")]
36+
[assembly: AssemblyFileVersion("1.0.0.0")]

0 commit comments

Comments
 (0)