Динамическое изменение свойств



 

Свойства элементов на окне могут быть изменены динамически во время выполнения программы. Например, можно изменить текст надпи-си или цвет формы. Изменение свойств происходит внутри обработчика события (например, обработчика события нажатия на кнопку). Для это-го используют оператор присвоения вида:

 

<имя элемента>.<свойство> = <значение>;

 

Например:

 

label1.Text = "Привет";

 

<Имя элемента> определяется на этапе проектирования формы, при размещении элемента управления на форме. Например, при размещении на форме ряда элементов TextBox, эти элементы получают имена textBox1, textBox2, textBox3 и т. д., которые могут быть заменены в ок-не свойств в свойстве (Name) для текущего элемента. Допускается ис-пользование латинских или русских символов, знака подчеркивания

 

и цифр (цифра не должна стоять в начале идентификатора). Список свойств для конкретного элемента можно посмотреть в окне свойств, а также в приложении к данным методическим указаниям.

Если требуется изменить свойства формы, то никакое имя элемента перед точкой вставлять не нужно, как и саму точку. Например, чтобы задать цвет формы, нужно просто написать:

 

BackColor = Color.Green;

 

Выполнение индивидуального задания

 

По указанию преподавателя выберите свое индивидуальное задание. Уточните условие задания, количество, наименование, типы исходных данных. Прочтите в Приложении 1 описание свойств и описание элемен-тов управления Form, Label, TextBox, Button. С помощью окна свойств ус-тановите первоначальный цвет формы, шрифт выводимых символов.

 

Индивидуальные задания

 

1. Разместите на форме четыре кнопки (Button). Сделайте на кнопках следующие надписи: «красный», «зеленый», «синий», «жел-тый». Создайте четыре обработчика события нажатия на данные кноп-


 

14


 

ки , которые будут менять цвет формы в соответствии с текстом на кнопках.

2. Разместите на форме две кнопки (Button) и одну метку (Label). Сделайте на кнопках следующие надписи: «привет», «до свидания». Создайте обработчики события нажатия на данные кнопки, которые бу-дут менять текст метки на слова, написанные на кнопках. Создайте об-работчик события создания формы (Load), который будет устанавливать цвет формы и менять текст метки на строку «Начало работы».

3. Разместите на форме ряд кнопок (Button) напротив каждой по-ле ввода (TextBox) и одну метку (Label). Создайте обработчики события нажатия на данные кнопки, которые будут менять текст в метке. Текст

в метке берется из поля ввода напротив нажимаемой кнопки.

4. Разместите на форме ряд кнопок (Button), и одно поле ввода (TextBox). Создайте обработчики события нажатия на данные кнопки, которые будут менять текст на нажатой кнопке. Текст на кнопке берется из поля ввода.

 

5. Разместите на форме ряд кнопок (Button) и ряд меток (Label). Создайте обработчики события нажатия на данные кнопки, которые бу-дут менять цвет двух меток. Создайте обработчик события нажатия кнопки мыши на форме (Click), который будет устанавливать цвет всех меток в белый.

6. Разместите на форме ряд кнопок (Button) и ряд меток (Label). Создайте обработчик события создания формы (Load), который будет делать все метки невидимыми. Создайте обработчики события нажатия на кнопки, которые будут менять свойство метки Visible, тем самым делать их видимыми.

 

7. Разместите на форме ряд кнопок (Button), напротив каждой по-ле ввода (TextBox). Создайте обработчики события нажатия на данные кнопки, которые будут менять заголовок окна. Текст в заголовке берет-ся из поля ввода напротив нажимаемой кнопки.

8. Разместите на форме две кнопки (Button) и одну метку (Label). Сделайте на кнопках следующие надписи: «скрыть», «показать». Соз-дайте обработчики события нажатия на данные кнопки, которые будут скрывать или показывать метку. Создайте обработчик события создания формы (Load), который будет устанавливать цвет формы и менять текст метки на строку «Начало работы».

9. Разместите на форме три кнопки (Button) и одно поле ввода (TextBox). Сделайте на кнопках следующие надписи: «скрыть», «пока-зать», «очистить». Создайте обработчики события нажатия на данные кнопки, которые будут скрывать или показывать поле ввода. При нажа-тии на кнопку «очистить» текст из поля ввода должен быть удален.


 

15


 

10. Разместите на форме две кнопки (Button) и одно поле ввода (TextBox). Сделайте на кнопках следующие надписи: «заполнить», «очи-стить». Создайте обработчики события нажатия на данные кнопки, кото-рые будут очищать или заполнять поле ввода знаками «******». Создайте обработчик события создания формы (Load), который будет устанавливать цвет формы и менять текст в поле ввода на строку «+++++».

 

11. Разработайте игру, которая заключается в следующем. На фор-ме размещены пять кнопок (Button). При нажатии на кнопку некоторые кнопки становятся видимыми, а другие – невидимыми. Цель игры – скрыть все кнопки.

 

12. Разработайте игру, которая заключается в следующем. На фор-ме размещены четыре кнопки (Button) и четыре метки (Label). При на-жатии на кнопку часть надписей становится невидимой, а часть, наобо-рот, становится видимой. Цель игры – скрыть все надписи.

13. Разместите на форме ряд кнопок (Button). Создайте обработ-чики события нажатия на данные кнопки, которые будут делать неак-тивными текущую кнопку. Создайте обработчик события изменения размера формы (Resize), который будет устанавливать все кнопки

 

в активный режим.

14. Разместите на форме ряд кнопок (Button). Создайте обработчи-ки события нажатия на данные кнопки, которые будут делать неактив-ными следующую кнопку. Создайте обработчик события нажатия кноп-ки мыши на форме (Click), который будет устанавливать все кнопки

 

в активный режим.

15. Разместите на форме три кнопки (Button) и одно поле ввода (TextBox). Сделайте на кнопках следующие надписи: «*****», «+++++», «00000». Создайте обработчики события нажатия на данные кнопки, кото-рые будут выводить текст, написанный на кнопках, в поле ввода. Создайте обработчик события создания формы (Load), который будет устанавливать цвет формы и менять текст в поле ввода на строку «Готов к работе».

 

16. Разместите на форме ряд полей ввода (TextBox). Создайте об-работчики события нажатия кнопкой мыши на данные поля ввода, кото-рые будут выводить в текущее поле ввода его номер. Создайте обработ-

чик события изменения размера формы (Resize), который будет очищать все поля ввода.

 

17. Разместите на форме поле ввода (TextBox), метку (Label)

 

и кнопку (Button). Создайте обработчик события нажатия на кнопку, который будет копировать текст из поля ввода в метку. Создайте обра-ботчик события нажатия кнопки мышки на форме (Click), который бу-дет устанавливать цвет формы и менять текст метки на строку «Начало работы» и очищать поле ввода.


 

16


 

18. Разместите на форме поле ввода (TextBox) и две кнопки (Button) с надписями: «блокировать», «разблокировать». Создайте об-работчики события нажатия на кнопки, которые будут делать активным или неактивным поле ввода. Создайте обработчик события нажатия кнопки мышки на форме (Click), который будет устанавливать цвет формы и делать невидимыми все элементы.

19. Реализуйте игру минер на поле 3×3 из кнопок (Button). Перво-начально все кнопки не содержат надписей. При попытке нажатия на кнопку на ней либо показывается количество мин, либо надпись «ми-на!» и меняется цвет окна.

 

20. Разместите на форме четыре кнопки (Button). Напишите для каждой обработчик события, который будет менять размеры и местопо-ложение на окне других кнопок.


 

17


 

 

ЛАБОРАТОРНАЯ РАБОТА № 2.

 

ЛИНЕЙНЫЕ АЛГОРИТМЫ

 

Цель лабораторной работы: научиться составлять каркас про-стейшей программы в среде Visual Studio. Написать и отладить про-грамму линейного алгоритма.

 

Структура приложения

 

Перед началом программирования необходимо создать проект. Проект содержит все исходные материалы для приложения,такие какфайлы исходного кода, ресурсов, значки, ссылки на внешние файлы, на которые опирается программа, и данные конфигурации, такие как параметры компилятора.

 

Кроме понятия проект часто используется более глобальное поня-тие – решение (solution). Решение содержит один или несколько проек-тов, один из которых может быть указан как стартовый проект. Выпол-нение решения начинается со стартового проекта.

 

Таким образом, при создании простейшей C# программы в Visual Studio создается папка решения, в которой для каждого проекта созда-ется подпапка проекта, а уже в ней – другие подпапки с результатами компиляции приложения.

 

Проект – это основная единица, с которой работает программист. При создании проекта можно выбрать его тип, а Visual Studio создаст каркас проекта в соответствии с выбранным типом.

В предыдущей лабораторной работе мы попробовали создавать оконные приложения, или иначе Приложения Windows Forms. Примером другого типа проекта является привести проект консольного приложения.

 

По своим «внешним» проявлениям консольные напоминают при-ложения DOS, запущенные в Windows. Тем не менее, это настоящие Win32-приложения, которые под DOS работать не будут. Для консоль-ных приложений доступен Win32 API, а кроме того, они могут исполь-зовать консоль – окно, предоставляемое системой, которое работает

 

в текстовом режиме и в которое можно вводить данные с клавиатуры.

 

Особенность консольных приложений в том, что они работают не в графическом, а в текстовом режиме.

 

Проект в Visual Studio состоит из файла проекта (файл с расшире-нием .csproj), одного или нескольких файлов исходного текста (с рас-ширением .cs), файлов с описанием окон формы (с расширением


 

18


 

.designer.cs), файлов ресурсов (с расширением .resx), а также ряда служебных файлах.

 

В файле проекта находится информация о модулях,составляющихданный проект, входящих в него ресурсах, а также параметров построе-ния программы. Файл проекта автоматически создается и изменяется средой Visual Studio и не предназначен для ручного редактирования.

 

Файл исходного текста –программный модуль,предназначендля размещения текстов программ. В этом файле программист размеща-ет текст программы, написанный на языке C#. Модуль имеет следую-щую структуру:

 

// Раздел подключенных пространств имен using System;

 

// Пространство имен нашего проекта namespace MyFirstApp

{

// Класс окна

public partial class Form1 : Form

{

// Методы окна public Form1()

{

InitializeComponent();

}

}

}

 

В разделе подключения пространств имен (каждая строка которого располагается в начале файла и начинается ключевым словом using) описываются используемые пространства имен. Каждое пространство имен включает в себя классы, выполняющие определенную работу, на-пример, классы для работы с сетью располагаются в пространстве System.Net, а для работы с файлами – в System.IO. Большая часть про-странств, которые используются в обычных проектах, уже подключена при создании нового проекта, но при необходимости можно дописать дополнительные пространства имен.

 

Для того чтобы не происходило конфликтов имен классов и пере-менных, классы нашего проекта также помещаются в отдельное про-странство имен. Определяется оно ключевым словом namespace, после которого следует имя пространства (обычно оно совпадает с именем проекта).


 

19


 

Внутри пространства имен помещаются наши классы – в новом проекте это класс окна, который содержит все методы для управления поведением окна. Обратите внимание, что в определении класса при-сутствует ключевое слово partial, это говорит о том, что в исходном тексте представлена только часть класса, с которой мы работаем непо-средственно, а служебные методы для обслуживания окна скрыты

в другом модуле (при желании их тоже можно посмотреть, но редакти-ровать вручную не рекомендуется).

Наконец, внутри класса располагаются переменные, методы и дру-гие элементы программы. Фактически, основная часть программы раз-мещается внутри класса при создании обработчиков событий.

При компиляции программы Visual Studio создает исполняемые

.exe-файлы в каталоге bin.

 

Работа с проектом

 

Проект в Visual Studio состоит из многих файлов, и создание сложной программы требует хранения каждого проекта в отдельной папке. При создании нового проекта Visual Studio по умолчанию сохраняет его в от-дельной папке. Рекомендуется создать для себя свою папку со своей фа-милией внутри папки своей группы, чтобы все проекты хранились в одном месте. После этого можно запускать Visual Studio и создавать новый про-ект (как это сделать, показано в предыдущей лабораторной работе).

 

Сразу после создания проекта рекомендуется сохранить его в под-готовленной папке: ФайлСохранить все. При внесении значитель-ных изменений в проект следует еще раз сохранить проект той же ко-мандой, а перед запуском программы на выполнение среда обычно сама сохраняет проект на случай какого-либо сбоя. Для открытия сущест-вующего проекта используется команда Файл → Открыть проект, ли-бо можно найти в папке файл проекта с расширением .sln и сделать на нем двойной щелчок.

 

Описание данных

 

Типы данных имеют особенное значение в С#, поскольку это строго типизированный язык.Это означает,что все операции под-вергаются строгому контролю со стороны компилятора на соответст-вие типов, причем недопустимые операции не компилируются. Такая строгая проверка типов позволяет предотвратить ошибки и повысить надежность программ. Для обеспечения контроля типов все перемен-ные, выражения и значения должны принадлежать к определенному типу. Такого понятия, как бестиповая переменная, допустимая в ряде скриптовых языков, в C# вообще не существует. Более того, тип зна-


 

20


 

чения определяет те операции, которые разрешается выполнять над ним. Операция, разрешенная для одного типа данных, может оказать-ся недопустимой для другого.

 

                 

Типы данных

             
                                   
                                   
   

Числовые

     

Символьные

 

Логические

    Прочие    
       

 

                       
       

 

                     

Целочисленные

 

С плавающей

   

char

 

bool

   

object

   
   

точкой

             
                               
 

 

                             
 

 

                           
 

byte, sbyte

    float    

string

             
 

 

                           
 

 

                           
 

ushort, short

    double                      
 

 

                           
 

 

                           
 

uint, int

    decimal                      
                                   

 

 

ulong, long

 

Рис. 2.1. Структура типов данных

 

Целочисленные типы

 

В С# определены девять целочисленных типов: char, byte, sbyte, short, ushort, int, uint, long и ulong. Тип char может хранить числа, но чаще используется для представления символов. Остальные восемь целочисленных типов предназначены для числовых расчетов.

 

Некоторые целочисленные типы могут хранить как положительные, так и отрицательные значения (sbyte, short, int и long), другие же – только положительные (char, byte, ushort, uint и ulong).

 

Типы с плавающей точкой

 

Такие типы позволяют представлять числа с дробной частью. В С# имеются три разновидности типов данных с плавающей точкой: float, double и decimal. Первые два типа представляют числовые значения

 

с одинарной и двойной точностью, вычисления над ними выполняются аппаратно и поэтому быстро. Тип decimal служит для представления чисел с плавающей точкой высокой точности без округления, характер-


 

21


 

ного для типов float и double. Вычисления с использованием этого ти-па выполняются программно и поэтому более медленны.

Числа, входящие в выражения, C# по умолчанию считает целочис-ленными. Поэтому следующее выражение будет иметь значение 0, ведь если 1 нацело разделить на 2, то получится как раз 0:

 

double x = 1 / 2;

 

Чтобы этого не происходило, в подобных случаях нужно явно ука-зывать тип чисел с помощью символов -модификаторов: f для float и d для double. Приведенный выше пример правильно будет выглядеть так:

 

double x = 1d / 2d;

 

Иногда в программе возникает необходимость записать числа

в экспоненциальной форме. Для этого после мантиссы числа записыва-ется символ «e» и сразу после него – порядок. Например, число 2,5·10–2 будет записано в программе следующим образом:

 

2.5e‐2

 

Символьные типы

 

В С# символы представлены не 8-разрядным кодом, как во многих других языках программирования, а 16-разрядным кодом, который на-зывается юникодом (Unicode). В юникоде набор символов представлен настолько широко, что он охватывает символы практически из всех ес-тественных языков на свете.

 

Основным типом при работе со строками является тип string, за-дающий строки переменной длины. Тип string представляет последо-вательность из нуля или более символов в кодировке Юникод. По сути, текст хранится в виде последовательной доступной только для чтения коллекции объектов char.

 

Логический тип данных

 

Тип bool представляет два логических значения: «истина» и «ложь». Эти логические значения обозначаются в С# зарезервированными словами true и false соответственно. Следовательно, переменная или выражение типа bool будет принимать одно из этих логических значений.

 

Рассмотрим самые популярные данные – переменные и константы. Переменная – это ячейка памяти, которой присвоено некоторое имя, и это имя используется для доступа к данным, расположенным в данной ячейке.


 

22


 

Для каждой переменной задается тип данных – диапазон всех возможных значений для данной переменной. Объявляются переменные непосредст-венно в тексте программы. Лучше всего сразу присвоить им начальное значение с помощью знака присвоения «=» (переменная = значение):

 

int a; // Только объявление

 

int b = 7; // Объявление и инициализация

 

Для того чтобы присвоить значение символьной переменной, дос-таточно заключить это значение (т. е. символ) в одинарные кавычки:

 

char ch;                        // Только объявление

 

char symbol = 'Z'; // Объявление и инициализация

 

Частным случаем переменных являются константы. Константы – это переменные, значения которых не меняются в процессе выполнения программы. Константы описываются как обычная переменная, только с ключевым словом const впереди:

 

const int c = 5;

 


Дата добавления: 2020-04-08; просмотров: 2158; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!