вівторок, 30 травня 2017 р.

C# — Методи

Сьогодні ми з Вами торкнемося основ програмування: ми розглянемо методи.

Ви їх, звісно, постійно використовуєте, по суті, кожного разу коли вводите ім’я методу та відкриваєте дужки. Наприклад, WriteLine() – метод класу Console; Show(…) – метод класу MessageBox; Split(…),SelectAll(), Find() – методи класу RichTextBox; навіть ToString() – це також метод. Усі ці методи вже вбудовані.
Зараз ми навчимось створювати власні методи.
Метод також називають функцією та підпрограмою. Метод, як правило, складається із:
1)    послідовності операцій для виконання дії
2)    множини вхідних параметрів для налаштування цієї дії
3)    можливо, вихідного значення деякого типу (значення, що повертається).
Спочатку з’ясуємо, навіщо створювати власні методи. Давайте поглянемо на код, що був використаний у попередньому відео (C# — Пошук слів та виділення кольором). При натиску на кнопку до того, як програма почне шукати слова, прибирається кольорове виділення з тексту у RichTextBox за допомогою рядків №24 (richTexBox1.SelectAll();) та 25 (richTexBox1.SelectionBackColor = Color.White;).
Буде корисним дати користувачу можливість просто прибрати виділення з тексту, не виконуючи пошук у ньому. Створимо ще одну кнопку: «Clear». Двічі натиснемо на неї. Ми можемо скопіювати ці два рядки, що виконаються при натиску на другу кнопку. Втім, є економніший та в цілому кращий спосіб. Щоб не дублювати код цілим шматком, помістимо його у метод.
Пишемо «void», назва методу, відкриваємо та закриваємо дужки. Всередину помістимо рядки 24 та 25. Тепер замінимо ці рядки у button1_click викликом нашого методу. Для цього вводимо назву методу, відкриваємо та закриваємо дужки. Цей метод не приймає та не повертає жодних значень, на що і вказує «void».
Я дякую Вам за увагу, шановні читачі.

вівторок, 14 лютого 2017 р.

Пошук слів та виділення кольором

Це відео буде доволі насиченим. Головна мета – це змусити програму шукати певні слова у тексті, але крім цього ми розглянемо створення масивів, виділення кольором у тексті, а також познайомимося з регулярними виразами. Отож, почнемо.

Усім нам відома програма «Word», у якій функція пошуку реалізована доволі зручно. Наприклад, текст, який необхідно знайти, виділяється на сторінках жовтим кольором. Ми спробуємо це відтворити.
Вибираємо шаблон «Застосунки Windows Forms», вводимо ім’я нашого проекту (наприклад, «TextEditor») та натискаємо на кнопку «окей».
Нам знадобляться 3 графічні елементи керування: по-перше, кнопка (Button); по-друге, текстове поле, куди користувач буде вводити слова, які необхідно знайти; і по-третє, RichTextBox, в якому буде міститися сам текст.
Одразу слід зазначити, що ми дозволимо користувачу шукати як одне слово, так і декілька. Наприклад, користувач введе два слова для пошуку, розділені комою без пробілу. Щоб шукати кожне з цих слів, необхідно створити масив рядків, в якому кожному рядку відповідатиме одне слово для пошуку.
Тепер почнемо власне програмувати. Натискаємо двічі на кнопку.
Щоб створити масив рядків необхідно ввести тип змінної – «string», а потім поставити квадратні дужки. Тепер вводимо назву масиву і присвоюємо йому значення, в даному випадку – «textBox1.Text». Щоб поділити суцільний рядок на слова, необхідно використати метод Split. Відкриваємо дужку. Тепер необхідно вказати масив символів, які розділяють слова. Оскільки рядок буде поділено на слова лише один раз, то немає необхідності створювати окремий масив символів. Тому введемо ключове слово «new» та тип змінної «char», тобто символ. Відкриваємо-закриваємо квадратні дужки, щоб показати що це масив. Щоб одразу задати значення у масиві, запишемо їх у фігурних дужках (а точніше його, оскільки нам потрібна буде лише кома). Символи, на відміну від рядків, слід записувати не у лапках, а між двома апострофами. Закриваємо фігурну дужку. Ми б могли зараз закрити дужку і поставити крапку з комою, але ми поставимо кому і надрукуємо «StringSplitOptions.RemoveEmptyEntries». Це потрібно для того, щоб прибрати пусті елементи з масиву. Справа в тому, що користувач може ввести дві коми підряд, і тоді програма дарма виконає зайву послідовність подій.

Слова мають бути розділені комою без пробілу

Так виглядає введення необхідних слів для пошуку. Потім користувач має натиснути на кнопку. Втім, візуально ще нічого не відбувається. Повернімося до коду.
Щоб пошук, який буде реалізовано пізніше, не починався щоразу з початку, треба запам’ятати позицію, з якої слід починати пошук. Тому створимо числову змінну «pos» (тобто позиція) = 0.
Оскільки програма виділятиме знайдені слова кольором, перед цим необхідно прибрати кольорове виділення, що могло вже бути в тексті до натиску на кнопку. Спочатку виділимо весь текст: «richTextBox1.SelectAll();» Після цього змінити колір фону виділеного тексту на білий. «richTextBox1.SelectionBackColor». Присвоїмо колір із колекції кольорів Color: «Color.White», який є стандартним кольором фону.
Тепер необхідно створити цикл, який виконається стільки разів, скільки є слів для пошуку. Вводимо: «foreach (string word in SearchWords)». Саму послідовність подій запишемо у фігурних дужках. В них створимо ще один цикл foreach. Другий цикл виконується стільки разів, скільки раз у тексті зустрічається конкретне слово для пошуку, наприклад перше слово зустрілось п’ять разів, друге – десять разів. Таким чином, перший цикл виконується два рази, а другий цикл – п’ятнадцять разів. Відкриваємо дужку. Зараз я швидко представлю інформацію про регулярні вирази.
Регулярний вираз (від англ. regular expression, скорочено Regex) — це рядок, що описує або збігається з множиною рядків, відповідно до набору спеціальних синтаксичних правил. Іншими словами, це шаблон для пошуку, за допомогою якого легко знайти необхідний відрізок тексту. Регулярний вираз у мові C# – це клас Regex, а результат окремого збігу регулярного виразу представлений класом Match.
Тому пишемо після дужки Match. Зараз виводиться помилка, оскільки за замовчанням простір імен для регулярних виразів не міститься у проекті. Натискаємо ПКМ – «Разрешить» – using System.Text.RegularExpressions;
Тепер проект розпізнає цей клас з простору імен регулярних виразів, який ми щойно додали у проект.
Вводимо будь-яку назву, наприклад «match», ключове слово «in», клас Regex.Matches. Matches – це колекція усіх збігів заданого шаблону в конкретному тексті. Відкриваємо дужку і вказуємо текст, у якому необхідно шукати (richTextBox1.Text). Ставимо кому і вводимо шаблон регулярного виразу для зіставлення. Друкуємо: @"\b
Равлик позначає, що рядок слід сприймати саме так, як він написаний. Це корисно, якщо у рядку є знаки форматування, такі як перенесення на новий рядок, табуляція тощо. \b означає, що для цього шаблону збіг має починатися з початку слова. Продовжуємо писати: (" + word + @")\b"))
Тепер розберемо, що ми написали: з таким шаблоном збіг у тексті починається на початку слова, яке необхідно було знайти, і закінчується з кінцем слова. Тобто, якщо ми шукаємо слово «то», в слові «ескалатор» не буде збігу. Простими словами, ми шукаємо лише ціле слово.
У фігурних дужках запишемо код, що виконається у циклі. pos = match.Index; Ми записуємо у змінну, що відповідає за позицію для наступного пошуку, позицію у тексті, де був знайдений збіг – це і є властивість Index.
Тепер скористаємося вже вбудованим методом richTextBox.Find, що знайде та виділить необхідний відрізок тексту. У дужках надрукуємо слово, яке необхідно знайти – word. Ставимо кому, пишемо pos – позиція з якої слід шукати. Ставимо кому і друкуємо: RichTextBoxFinds.WholeWord);
RichTextBoxFinds задає параметри пошуку тексту в елементі керування RichTextBox. WholeWord вказує, що слід знайти лише ціле слово.
Тепер, нарешті, виділимо кольором знайдений текст. richTextBox1.SelectionBackColor = Color.Yellow;
Завдяки жовтому кольору стає зрозуміло, що відповідає критеріям пошуку, а що ні. Наприклад, частина слова, чи навіть лише одна літера з нього не буде вважатися збігом, оскільки ми задали такі параметри.
Може здатися, що для того, щоб шукати не лише цілі слова, достатньо просто не вказувати параметр RichTextBoxFinds. Втім, це обов’язково, оскільки ми вказуємо позицію для пошуку, а її можна вказати у методі Find лише тоді, коли третім аргументом методу є певний параметр RichTextBoxFinds. Тому слід лише замінити  WholeWord після RichTextBoxFinds. на None. Тепер перевіримо, чи буде збіг у частині слова.
Програма й досі шукає лише цілі слова. Можна подумати, що слід обрати інший параметр RichTextBoxFinds чи взагалі просто не використовувати його. Але, як вже було сказано, без нього не обійтись. Та й проблема не в ньому. Саме в цьому випадку вирішальну роль грає шаблон регулярного виразу. Позиція для пошуку у RichTextBox береться з індексу збігу цього шаблону з текстом. Оскільки шаблон знаходить лише цілі слова, то й позиція для пошуку у RichTextBox знаходиться лише перед цілими словами.
Просто слід прибрати у шаблоні символи \b.
Тепер, коли ви знаєте, як налаштувати пошук на ціле слово або лише його частину. Оберіть той шаблон, що підходить саме Вам.
Цей проект, на відміну від попередніх, краще зберегти, оскільки пошук використовується дуже часто. І щоб не проходити цей процес кожного разу, Ви можете використати цей код як заготовку, змінюючи його відповідно до нових потреб. Крім того, у наступному відео буде використаний саме цей проект.

Я дякую Вам за увагу, шановні читачі!

вівторок, 7 лютого 2017 р.

Рядок стану та його графічні піделементи і властивості

У цьому відео я познайомлю Вас із графічним елементом StatusStrip – це рядок стану. Спочатку розглянемо приклад втілення RichTextBox та StatusStrip на прикладі програми «Блокнот».


 Біле текстове поле – це RichTextBox, який я розглянув у попередньому відео. Нижче ви можете бачити StatusStrip. В даному випадку рядок стану відображає поточний рядок та стовпець, тобто позицію курсору в даний момент. Зараз ми створимо дещо подібне.


 Вибираємо шаблон «Застосунки WindowsForms» та натискаємо на кнопку «окей».
Відкриваємо панель елементів, шукаємо елемент StatusStrip і перетягуємо його на нашу форму. Також нам знадобиться такий елемент керування, як RichTextBox.
Одразу слід сказати, що додати графічні елементи на рядок стану дуже легко. Натискаємо на стрілку та вибираємо потрібний елемент, в даному випадку – StatusLabel. Сюди буде виводитися кількість символів у текстовому полі. Додаємо другий StatusLabel, що відображатиме кількість рядків.
Текст в рядку стану повинен оновлюватися, коли змінюється текст у полі редагування. Тому слід використати подію TextChanged.
Перевіримо як називається елемент у рядку стану. Введемо: toolStripStatusLabel1.Text = richTextBox1. Довжина тексту RichTextBox зберігається у властивості TextLength. Тепер налаштуємо відображення кількості рядків. toolStripStatusLabel2.Text = richTextBox.Lines; Зараз рядок позначений як неправильний, оскільки Lines – це ціла колекція текстових значень, а не одне. Потрібна лише довжина колекції. Пишемо .Length; В обох рядках зараз помилка, оскільки ми присвоюємо властивості Text числові значення. Необхідно їх перевести у текстові за допомогою методу ToString();
Перевіримо.
Кількість відображається, але для користувача необхідно зробити пояснення перед цими числами. Після знаку дорівнює у лапках надрукуємо для кожного з елементів відповідне слово. Після цього ставимо знак плюс, що поєднає у властивості Text пояснення та число.
Тепер додамо у рядок стану інший елемент керування – SplitButton. За замовчання, на кнопці відображається малюнок, але ми замінимо його на текст. У властивості DisplayStyle виберемо Text замість Image. Тепер це більше схоже на звичайну кнопку. Зараз відредагуємо її текст. Припустімо, вона відповідає за масштабування. Введемо: Zoom. До її дочірніх елементів також будуть додані 2 кнопки. Просто почніть редагувати текстове поле. Дозволимо користувачу обирати між 2 варіантами: масштабування 100% або 50%. Натиснемо двічі на кнопку.
Пишемо: richTextBox.ZoomFactor = вводимо значення. Зауважте, ця властивість приймає значення float, тобто число з плаваючою точкою, а одиниця – це 100%. Отже, 50 – це 5 тис. %. Це нас не влаштовує, тому напишемо дробове число 0,5; Друге зауваження: для нецілих чисел потрібно використовувати крапку, а не кому. Третє зауваження: щоб значення сприймалося як float, необхідно вкінці дописати малу англійську літеру f;
Тепер дозволимо користувачу повернути масштабування за замовчанням. Напишемо аналогічний рядок коду, але значення можна задати просто як одиницю, тобто 100%.
Тепер розглянемо властивості StatusStrip. Перш за все, це властивість. що дозволяє або забороняє користувачу при натиску клавіші ALT змінювати порядок елементів у рядку стану. За замовчанням, це не дозволено. Встановимо значення true.
Затискаємо ALT.


Як бачимо, ми можемо змінювати порядок розташування.
Рядок стану має вже знайому вам властивість BackColor. Краще задати йому колір відмінний від того, що в текстовому полі.


Як бачите, цей елемент керування має значну кількість властивостей, що Ви вже бачили в інших графічних елементах. Наприклад, Font, Location, RightToLeft тощо.
Властивість SizingGip визначає наявність у рядку стану інструменту змінення розміру, що відображається у правому нижньому куті. За замовчанням, цей інструмент наявний, оскільки властивість дорівнює true.
Властивість Text хоч і наявна, але візуально не представлена.
Інший графічний елемент у рядку стану – DropDownButton, ще один різновид кнопки. За замовчанням, також відображається зображення, а не текст.
Ця кнопка буде містити дві дочірні. Введемо просто BUTTON. Дві інші кнопки – лише демонстративні, тому також назвемо їх просто: button1 та button2. Поглянемо, як це виглядає.


Як бачите, візуально, DropDownButton дещо відрізняється від SplitButton. Ще більше ця кнопка відрізняється від двох вже доданих лейблів.
Сам StatusStrip ми розглянули. Цей графічний елемент керування бажано використовувати у редакторі тексту.

Я дякую Вам за увагу, шановні читачі!

понеділок, 30 січня 2017 р.

RichTextBox та його властивості

У цьому відео я продемонструю графічний елемент керування RichTextBoxСтворимо новий проект Windows FormsВведіть назву проекту та натисніть на кнопку «окей».

З панелі елементів перенесемо на головне вікно «RichTextBox». Натиснемо на стрілку біля правого верхнього кута елементу і виберемо «помістити в док у батьківському контейнері». Тепер це текстове поле займає усю площу та автоматично підлаштовується під розмір вікна.
Тепер поглянемо на деякі властивості RichTextBox у алфавітному порядку. Властивість AcceptsTab визначає, чи вставляється інтервал при натиску клавіші Tab.
Властивість BackColor задає фоновий колір компоненту.
Властивості BorderStyle, BulletIndent, CausesValidation розглядати не будемо.
Властивості ContextMenuStrip можна присвоїти контекстне меню, якщо таке є. Властивість Cursor ми розглядали у попередньому відео.
DetectUrls вмикає або ж вимикає автоматичне виділення URL-адреси. RichTextBox може розпізнати www, http та https у тексті. Звичайний TextBox такої властивості немає.
EnableAutoDragDrop вмикає режим перетягування мишкою тексту, малюнків та інших даних. Наприклад, з програми Word або з браузеру у Вашу програму. Режим вмикається, коли значення рівне true. Окрім тексту переноситься  також його форматування.
Властивість Font дозволяє змінити шрифт тексту. Наприклад, можемо задати шрифт Times New Roman та обрати його розмір, скажімо 14 кегль.
ForeColor – це властивість, що визначає основний колір для відображення тексту в даному елементі керування.
HideSelection вказує, що при перефокусуванні з текстового поля виділення тексту має бути приховано. Тобто, коли значення true, текст буде виділений лише, якщо головне вікно активне.
Linesце рядки тексту у багаторядковому полі редагування як масив рядкових значень. Іншими словами, тут можна задати текст.
Наступні властивості ми не будемо розглядати, оскільки вони не є актуальними. Перейдемо одразу до властивості MultiLine, про яку вже згадувалося у минулому відео. Втім, при значенні true вона не лише дозволяє змінювати висоту графічного елементу керування, а й вказує, що текст у полі редагування може займати кілька рядків. При значенні false текст у рядку, що досягне краю вікна, не буде переноситися на наступний рядок.
ReadOnly визначає, чи може користувач змінювати текст у полі редагування.
RightMargin визначає розміри правого поля. Текст переноситься на новий рядок, коли досягає правого поля. При значенні 0, праве поле закінчується там, де й текстове поле. Будь-яке інше значення вказує, що межа повинна проходити у місці, що відступає від лівого краю поля на певну кількість точок. Слід вказувати лише цілі додатні числа, наприклад 700, 100, 50 тощо.
RightToLeft визначає, чи має цей елемент керування поміняти місцями ліву і праву межі поля. Тобто, якщо значення true, користувач почне вводити текст з лівого краю.
ShortCutsEnabled вказує, чи активні «гарячі клавіші», визначені для даного елементу керування, такі як Ctrl+C, Ctrl+V тощо.
ShowSelectionMargin вмикає або вимикає поле для виділення цілого рядка. При значенні true з’явиться невеликий відступ зліва.
Властивість Size визначає розмір елементу керування. Втім, змінювати її немає сенсу, оскільки зараз текстове поле підлаштовується під розмір вікна.
TabIndex і TabStop регулюю порядок перефокусування при натиску клавіші Tab.
У властивості Text, як і в Lines, можна задати текст, що буде в елементі керування при запуску.
WordWrap визначає, чи виконується автоматичне перенесення тексту на новий рядок.
ZoomFactor задає поточний масштабний коефіцієнт відображення RichTextBox. За замовчання він рівний одиниці, тобто 100%. Щоб зменшити коефіцієнт потрібно ввести десятковий дріб. Наприклад: 0,5 – тобто 50%.

Або ж 2, тобто 200%.


В цілому, RichTextBox має більші можливості, в тому числі форматування, у порівнянні з TextBox. Я дякую Вам за увагу, шановні глядачі.

четвер, 26 січня 2017 р.

Як змінити курсор у конструкторі та під час роботи програми

Сьогодні я покажу Вам, як змінити курсор, що відображається при наведенні на той чи інший графічний елемент керування. Ми створимо новий проект.

Заходимо у меню «Файл», натискаємо створити проект, вибираємо шаблон «Застосунки Windows Forms», вводимо назву проекту та натискаємо на кнопку «окей».
Натискаємо на нашу форму і переходимо до її властивостей. Нам знадобиться властивість Cursor, яка визначає тип курсора. За замовчанням при наведенні на форму відображається курсор Default у вигляді стрілки. У конструкторі ми можемо вибрати потрібний нам курсор серед тих, що наявні у системі. Усі вони вам знайомі.
За замовчанням на формі відображається саме стрілка. Курсор можна поміняти, наприклад, на руку або на будь-який інший курсор.
Тепер я покажу як взаємодіє ця властивість з іншими елементами керування. Додамо на форму текстове поле. Натиснемо на стрілочку угорі текстового поля. У цьому вікні відмітимо параметр MultiLine, щоб можна було змінити висоту текстового поля. Також перетягнемо на форму кнопку. Щоб кнопка відображалася попереду текстового поля, натискаємо на ній правою кнопкою та вибираємо «На передній план». Тепер спробуємо змінити курсор для кнопки на «No». Запустимо програму. Тепер перевіримо, чи зберігається властивість кнопки, якщо вона на текстовому полі.
А тепер дозволимо користувачу змінювати вигляд курсору під час роботи програми. Спочатку повернемо стандартний вигляд курсору. Натискаємо правою кнопкою миші по назві властивості та вибираємо «Сброс».
Саме час змінити заголовок головного вікна, щоб він відповідав можливостям програми. У властивості «текст» форми введемо Change Cursor.
Також змінимо текст на кнопці на назву курсору, що з’явиться при її натиску. Введемо AppStarting.
Давайте впевнимося, що в усіх елементів керування зараз вигляд курсору за замовчанням.
Тепер двічі натиснемо на подію «Натиск на кнопку». Оскільки ми будемо змінювати вигляд курсору, що відображається на головному вікні, введемо ключове слово «this». Ставимо крапку. Вводимо властивість «Cursor». Ставимо дорівнює. Щоб присвоїти певний вигляд курсору, необхідно звернутися до класу Cursors. Ставимо крапку. Вибираємо перший елемент зі списку – AppStarting. Ставимо крапку з комою. Тепер перевіримо програму.
Для того, щоб користувач міг зробити вигляд курсору за замовчанням, перетягнемо на форму ще одну кнопку. Тепер подивимося назву курсору, який нам потрібен. В даному випадку, Default. У властивість «Text» введемо назву курсору. Натискаємо двічі на кнопку. Знову присвоїмо властивості Cursor нашої форми курсор із колекції Cursors. Ставимо крапку з комою. Перевіряємо.
Виконаємо аналогічні дії стільки разів, скільки виглядів курсору має бути доступно для користувача даної програми.
Зверніть увагу, що змінюється вигляд курсору лише для головного вікна і лише там, де немає іншого графічного елементу керування.

При наведенні курсору на текстове поле, бачимо, що вигляд курсору завжди є стандартним для текстового поля.
Щоб курсори були однаковими, додамо на форму ще одну кнопку. Введемо у властивість «Text» цієї кнопки «TextBox Cursor». Натискаємо двічі на кнопку. Щоб змінити курсор текстового поля, введемо його назву. Пишемо textBox1.Cursor =. Присвоїмо курсор головного вікна. Ключове слово this.Cursor;. Перевіримо.
Тепер дозволимо користувачу при натиску тієї ж кнопки змінити вигляд курсору на той, що є стандартним для текстового поля. За допомогою оператора if поставимо умову: if(textBox1.Cursor == this.Cursor). Ми пишемо, що якщо курсори у текстового поля і головного вікна однакові, то курсор текстового поля стане стандартним. Вводимо textBox1.CursorCursors.IBeam; Ми використали цей курсор, оскільки він є стандартним для текстового поля.
Нижче запишемо, що, якщо курсори різні, то у текстового поля курсор стане ідентичним до того, який у головного вікна. Використаємо оператор else.

Як бачимо, усе працює правильно. Тепер, для того, щоб користувачу не потрібно було натискати на кнопку, аби перевірити, як буде виглядати курсор, змінимо вигляд курсору при наведенні на кожну із кнопок. Для кожної із кнопок вигляд курсору буде відповідати тому, що на ній написано. Змінимо властивість Cursor кожної кнопки, окрім TextBox Cursor.

Я дякую Вам за увагу, шановні глядачі!

пʼятниця, 20 січня 2017 р.

Як змінити властивість "Text" у конструкторі та в коді на прикладі головного вікна, кнопки і текстового поля

У цьому відео я покажу вам дві речі: по-перше, як змінювати властивості під час роботи програми, зокрема, як змінити текст, що відображається у заголовку головного вікна, та як змінити текст, що відображається у іншому графічному елементі керування; по-друге, як дозволити користувачу під час використання програми самостійно змінювати цю властивість. Отож, почнемо.



  Заходимо у меню «Файл», натискаємо «Створити проект», вибираємо шаблон «віконний застосунок» та вводимо ім’я проекту. Після цього натискаємо на кнопку «окей».
Щоб у правому нижньому куті Visual Studio побачити властивості вашого головного вікна, натискаємо на форму і бачимо, що властивості відобразилися.

Як ви бачите, у мене зараз всі властивості відсортовані у алфавітному порядку. Вони також можуть бути відсортовані за категоріями. Знаходимо властивість «Text» та присвоюємо їй значення. Саме воно буде відображатися у заголовку. Наприклад, введемо: «Заголовок». Подивіться на текст у заголовку зараз, і натисніть клавішу «Enter».

Заголовок головного вікна змінився. Тепер дамо користувачу можливість самостійно його змінювати. Нам знадобиться вже знайомий нам елемент керування «Кнопка» - Button, для якого ми також можемо змінити властивість «Text» у конструкторі. Введемо «Змінити». Також, ми використаємо ще не згаданий елемент керування «текстове поле» - «Textbox», у який користувач може ввести текст. Змінювати положення елементів можна також стрілками «вгору-вліво-вправо-вниз».
Для початку спробуємо при натиску кнопки змінити текст, що відображається на ній. Натискаємо двічі на кнопку – і ось ми починаємо редагувати подію «натиск на кнопку». Зазвичай, для того, щоб змінити властивість об’єкту, потрібно спершу вказати його назву. Щоб дізнатися назву елементу керування, знаходимо його властивість «Name». Це і є назва елементу керування, тобто «button1».
Тепер введемо: button1.Text =  присвоюємо йому значення. Відкриваємо лапки, вводимо будь-який текст, закриваємо лапки, ставимо крапку з комою. Перевіряємо.
Тепер спробуємо змінити цей текст саме на те, що введе користувач у текстове поле. Введений текст буде записаний знов-таки у властивість «Text».
Тому, замість присвоєння введеного Вами тексту у коді, ми присвоїмо те, що введе користувач. Здійснимо доступ до текстового поля, ввівши його ім’я. Натискаємо на текстове поле та дивимося його ім’я угорі властивостей – textbox1. Вводимо: textbox1.Text; Перевіряємо.
Тепер спробуємо динамічно змінити заголовок нашого головного вікна. На відміну від інших графічних елементів, доступ до поточного вікна можна здійснити за допомогою ключового слова «this». Ставимо крапку і вибираємо властивість «Text». Присвоюємо значення – «Textbox1.Text». Перевіряємо.

Як бачимо, програма працює.
Я дякую Вам за увагу та терпіння, шановні глядачі!

вівторок, 17 січня 2017 р.

Що краще для початківців: консольні чи віконні застосунки (Windows Forms)?

  В цьому відео я спробую Вам пояснити, чим консольні проекти відрізняються від віконних, ТОБТО WindowsForms, і спробую вас переконати, що починати вчитися програмувати треба, використовуючи WindowsForms, а не консоль. Але, як і в кожному відео з будь-якої серії C#, спочатку ми поглянемо на консоль, а потім перейдемо до WindowsForms.

 

Насправді, програмувати у консолі ми не будемо, я лише розгляну випадок, який, на мою думку, є прикладом того, коли консоль дійсно є кращою.
Натискаємо на меню «Файл» - Створити проект. Вибираємо шаблон «консольний застосунок» і вводимо назву нашого проекту. Після цього натискаємо на кнопку «Окей».
Зараз розбиратися у коді немає потреби. Я вставлю вже заготовлений код та виконаю запуск програми. Для цього натискаємо на кнопку у вигляді зеленої стрілки, що знаходиться у верхній панелі Visual Studio, або ж натискаємо клавішу F5.
Припустимо, що Ви – системний адміністратор, якому неважливий зовнішній вигляд програми, оскільки нею користується лише Ви.

Як бачите, консоль має не надто привабливий вигляд. Припустімо, Ви знаєте вже безліч дуже коротких команд, довжиною у 2-3 символи, які надають доступ до певних функцій цієї програми. Наприклад, ввівши команду «qw», Вам стане відомий стан того, як комп’ютери у локальній мережі завантажують кудись файли.

Звісно, зараз ви бачите майже одні й ті ж псевдодані, які виводяться через безкінечний цикл.
Якщо ж для Вас важливий зовнішній вигляд програми, зручність користування та можливість взаємодії з програмою не лише завдяки введенню символів у консоль, то WindowsForms є кращим вибором. Тому, вважайте, що з консольними проектами ми закінчили. Натискаємо Файл-Створити проект. Консольний проект ми не зберігаємо, тому натискаємо на кнопку «Видалити». Тепер виберемо шаблон «Застосунок WindowsForms». Введіть будь-яку назву проекту. Оскільки я продемонструю примітивне програмування – виведення повідомлення при натиску на кнопку – я назву проект «Button_Demonstration». Натискаємо на кнопку «Окей». Одразу бачимо відмінності від консольних проектів: є не лише вікно з кодом, а й саме графічне представлення програми, що знаходиться у вкладці під назвою «Конструктор»; вікно для вас знайоме, оскільки має стиль операційної системи Windows, і з ним надзвичайно легко взаємодіяти. Також, при створенні проекту основний виконуваний код ми писатимемо не у файл «Program.cs», а у «Form1.cs». Крім того, у «VisualStudio» вже заготовлені усі звичні вам графічні елементи керування у вкладці «Панель елементів», що знаходиться зліва. Якщо така вкладка відсутня, у верхній панелі натискаємо на кнопку «Панель інструментів», або на клавіші Ctrl+Alt+X. Можна також зайти у меню «Вид» і вибрати «Панель інструментів». Вона з’явиться зліва. Щоб панель не забирала місце, слід натиснути на кнопку «автоматично приховувати».
Панель елементів містить різні елементи керування, кожен з яких має свої події, наприклад, для кнопки – це натиск кнопки, наведення на неї курсору, відведення з неї курсору тощо. Щоб додати до форми елемент керування, затисніть необхідний елемент у списку та перетягніть у вікно «Конструктор» у межах форми.
Справа знизу ви можете бачити вікно «Властивості». Якщо вони у Вас не відображаються, зайдіть у меню «Вид» і виберіть «Вікно властивостей». Окрім самих властивостей, ця вкладка також містить події, зокрема Click. Натискаємо двічі – і ось ми вже редагуємо подію «натиск на кнопку». Нам необхідно вивести повідомлення. У консолі ви використовуєте Console.WriteLine та текст повідомлення. У WindowsForms для цього існує MessageBox. Вводимо MessageBox.Show. Відкриваємо дужку, ставимо лапки та вводимо повідомлення. Після цього закриваємо лапки та ставимо закриваючу дужку. Перевіряємо. Як бачимо, програма працює.
Якщо Вам потрібно, аби відображалися номери рядків у коді – заходимо у меню «Сервіс», натискаємо «Параметри». Ставимо галочку біля «Показати всі параметри». Виберіть вкладку «Текстовий редактор» - «Всі мови». Ставимо галочку біля параметру «Номери рядків». 

Натискаємо на кнопку «Окей». Після цього номери рядків з’являться.

Дякую Вам за увагу. Сподіваюся, це відео переконало Вас використовувати для навчання WindowsForms, а не консоль.