понеділок, 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, а не консоль.