Софтуерно Инженерство
Loading...
+ Нов въпрос
Samuil.Petrow avatar Samuil.Petrow 1551 Точки

[WinForms] Да направим своето първо визуално приложение - Guide

Тъй като дълго време ще се пише само за конзола и някои хора може да се зачудят дали ще избягат от този черен екран, сега ще покажа как да си направим простичко приложение на Windows Forms

1. Създаваме си нов проект, но вместо Console Application избираме Windows Forms Application.

Ще имаме нещо от сорта на: 

Свободно можем да захванем формата за ъглите и да я оразмерим, за този проект ще я направим малко по-широка хоризонтално и по-къса във вертикално отношение.

2. Нека си променим background-а и иконата на приложението. Предварително сме си подготвили картинките, които ще ползваме, за този проект просто свалих един фон и една икона от нета.

Долу вдясно имаме Properties (Ако го нямаме цъкаме с десен бутон в/у формата и натискаме Properties), търсим полето background image, за да сменим фона:

ще ни се отвори нов прозорец, цъкаме Import, за да посочим път към изображението, което ще ползваме.

По същия начин намираме полето Icon, за да си променим иконата.

Вече имаме нещо по-красиво:

3. Нека направим бутон, който ще ни поздравява на клик, за целта първо трябва да си изкараме палитрата с инструменти на екрана, отиваме горе при лентата с menu-ta - > View - > Toolbox или натискаме Ctrl + Alt + X, след това отиваме на Common Controls и намираме Button:

Начинът, по който нареждаме контроли в Windows Forms е обикновен Drag & Drop, така че хващаме "Button" и го провлачваме в/у нашата форма. Вече имаме бутон, който също можем свободно да оразмеряваме, нека му сложим по-смислен текст, кликваме в/у бутона, който сме сложили, отиваме в Properties и търсим Text, ще го променим на "Цъкни ме". До тук имаме нещо такова:

Усещаме се, че авторът на тази тема е голям шемет и е забравил да смени текста на самата форма, затова цъкаме в/у нея и отново променяме Text, в случая ще напишем: "Softuni Tutorial App" и вече ще имаме смислен title за нашето приложение: 

4. Нека направим кликане в/у бутона, за целта трябва да отидем на неговите Properties и да отворим неговите Events:

След това отиваме на Action - > Click и цъкаме два пъти, ще ни се отвори директно редактор на код и метод, в който да напишем какво ще се случи, нека напишем вътре:

MessageBox.Show("Hello, Softuni!"); 

5. Подкарваме приложението и виждаме, че работи, но нашата форма може да се оразмерява и докато тече самото приложение, а ние не искаме това, затова се връщаме на Form1.cs [Design], отиваме в Properties на формата и променяме FormBorderStyle на FixedSingle. Но това не ни решава всичките проблеми, защото все още нашето приложение може да се оразмерява на цял екран затова отиваме на MaximizeBox и го променяме на False.

Надявам се да съм бил полезен :)

п.п: По време на работата никъде не си именуваме самите форми и бутони и съответно имат имена от сорта на form1, button1, а това трябва да се прави както си именуваме програмите, но съм го пропуснал, за да не заема излишно място :)

Тагове:
12
Общи приказки
Alexandar avatar Alexandar 118 Точки

Браво колега, полезна информация за хората на които им е писнала черната конзола ( като мен ;D ).

А попринцип това в по-горните курсове ще се учи ли ?

4
Samuil.Petrow avatar Samuil.Petrow 1551 Точки
Най-вероятно ще се учи WPF, а не Windows Forms, но съвсем скоро на отборните работи ще се наложи сами да си се занимаваме с това :)
2
xesoin avatar xesoin 9 Точки
колега добър урок и добре обяснено но нямаше ли да е по - добре да не го правиш  клакаджииско а  да го беше написал използвайкия малко XAML все пак и това ще се учи, това щеше да е много полезно за много хора  и щеше да е перфектен урока. Щеше да е малко сложно за разбиране още в самото начало да се пише това но, все пак с малко повече обяснение щяха хората да го разберат. 
0
Samuil.Petrow avatar Samuil.Petrow 1551 Точки
Написах го така точно, защото е по-лесно за разбиране, а повечето хора тук още са съвсем начинаещи. На всяка технология първо се почва от готовите Wizard-и, Template-и и т.н и след това малко по малко започваме да си пишем всичко :)
5
simeon.emanuilov avatar simeon.emanuilov 30 Точки
Браво на колегата. Изпращам и аз малко упражнения и уроци на тази тема. Много са описателни и влизат на моменти в подробности, който са доста далеч от темите на първия ни курс тук. Всичко е на български. На който му е интересно: изтегли
3
kaloyan.pavlov.7 avatar kaloyan.pavlov.7 0 Точки
Доста полезно, а и добре обяснено. Разнообразява конзолата със сигурност :d.
0
kasskata avatar kasskata 492 Точки

Готино си го написал.Наистина и аз се чудех"WTF кога ще пишем UI ?" ,но се оказа ,че UI няма и не ни трябва да пишем, защото на нас ни трябват базата за писане на код,а писането на UI се учи по бързо от връзването на обувките на краката ни.

Има и един много важен факт . НЕ знаем и не трябва да знаем на какво ще пишем,кода който създаваме ТРЯБВА да бъде универсален.

Представете си Starcraft. Има ли Starcraft за MS? има. Има ли Starcraft за Линукс? има. Имали за Андроид ? Няма, но аз ще го комитна като стана голям магьосник :D. Факт е ,че един пример като Starcraft може да се емулира на всяко нещо, приличащо на компютър само трябва да се пригоди и то с няколко реда код(например 200-300),а ако пишем една програма да работи САМО на Windows или само на Андроид губим другите конзоли ,където има допълнителен пазар за нашия продукт.А и такъв код(не знам колко код е Starcraft, но не е под 50000 реда код) ВИНАГИ ще бъде много труден за преработка за да върви.А дебъгването ще бъде кошмар!

Един пример е Angry Birds например. Само за Iphone в началото и по едно време вече мога да го играя и на тамагочитата дето ги продаваха по сборовете по едно всреме(ако сте дърти колкото мен ще знаете за какво говоря).

А вижте един Safari(apple browser).Толкова некадърно импортиран за Windows че можете да повърнете 3 пъти преди да отворите YouTube,това е пример за строго програмиране само за една платформа.

И така,идеята ми беше,учете се да работите за всички платформи и продължавайте просто да се учите! :)

P.S. Уважавам труда на колегата  Samuil.Petrow затова сега ще седна и ще пробвам гайда му защото никога не съм правил такива форми :) благодаря ти.

Споменатите фирми и апликации не са споменати от автора за да прави реклама или да подтиква някой да си кuпува някои от продуктите.Споменати са само за да може автора да си подплати думите с примери.:P
При записването на този коментар не е умряла нито една коала. xD
2
Samuil.Petrow avatar Samuil.Petrow 1551 Точки
Принципно ако ще пишем някакъв универсален UI, то JS е решението (много зависи и за какво е ui-то де). А иначе - гледал си на Жоро лекциите май :D :)
1
TodorovH avatar TodorovH 216 Точки
Ааа за коалата не е сигурно!!! :)
1
kasskata avatar kasskata 492 Точки
коалата е сигурна...Ленивецът ни съ знай...Жорката Президент!...Да живей JS...
1
beBoss avatar beBoss 513 Точки

button1 както и form1, както и "Цъкни ме", са нещата, които не трябва да правиш! Пък и WFA вече не се ползва ;)

2
Samuil.Petrow avatar Samuil.Petrow 1551 Точки

Не мога да те разбера. Първите две именуването ли е проблема? Хубаво щеше да е да четеш целите постове. А "цъкни ме", има конвенция бутоните да са само с background images, без да им се слага текст ли?

2
beBoss avatar beBoss 513 Точки

Да, именно, че съм прочел целият пост, затова написах и коментара.

п.п: По време на работата никъде не си именуваме самите форми и бутони и съответно имат имена от сорта на form1, button1, а това трябва да се прави както си именуваме програмите, но съм го пропуснал, за да не заема излишно място :)

Ако това имаш в предвид, под това да чета постовете. Да проблем е да се именуват(по-точно изобщо да не се пипнат при поставянето на контролата) - лошо нещо. Същото като и да не си преименуваш Program, което се преподава тук в университета. Не знам как като ги преименуваш, ще заеме някакво място, изобщо какво трябва да значи това? Както и да е. Тук две мнения няма, ако ще е качествено, не трябва да е така. Иначе за мен няма проблем ;)

1
Samuil.Petrow avatar Samuil.Petrow 1551 Точки

Ами имах предвид, че ще се разтегне още темата (4-5 преименувания, всяко описано само на един ред), а и всеки ще се сети, че трябва да си ги именува, не случайно съм го написал отдолу, защо да го повтарям няколко пъти? Не е урок по именуване.. Това да ти е проблема..

3