Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Анализ сгенерированного исходного кодаСодержание книги
Поиск на нашем сайте
Исходный код получившегося на данный момент приложения распределен между тремя файлами Program.cs, Form1.cs и Form1.Designer.cs. Файл Program.cs - его содержимое совсем небольшое и напоминает код, написанный в «пустом» оконном приложении. Главное в нем – уже знакомый оператор: Application.Run(new Form1()); Важное отличие – при вызове метода Run используется не стандартный класс Form, а класс Form1. Это производный от Form класс, уже сгенерированный визуальным дизайнером в файлах Form1.cs и Form1.Designer.cs. Эти файлы содержат две «половинки» класса Form1. Такое разделение осуществляется с использованием ключевого слова partial в заголовках класса в обоих файлах: Файл Form1.cs public partial class Form1: Form ... Файл Form1.Designer.cs partial class Form1 ... Главный вопрос – зачем нужно такое разделение. Это удобно в случае активного использования визуального дизайнера. Файл Form1.cs используется программистом для самостоятельного изменения класса. Содержимое файла Form1.Designer.cs автоматически заполняется кодом, сгенерированным визуальным дизайнером. В текущем состоянии файл Form1.cs очень короткий: using System; //другие необходимые директивы using public partial class Form1: Form { public Form1() { InitializeComponent(); } } Таким образом, в классе Form1 сейчас имеется конструктор, вызывающий метод InitializeComponent. Этот метод содержится в файле Form1.Designer.cs. Файл Form1.Designer.cs уже сейчас довольно громоздкий. Поэтому при его рассмотрении опустим необязательные подробности. Сначала найдите в этом файле описания переменных класса – они находятся в конце класса Form1: private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; Узнаете!? Эти три переменные button1, label1 и textBox1 сгенерированы в ответ на перетаскивание соответствующих элементов из Toolbox на форму. Кроме того, в классе Form1 определен закрытый метод InitializeComponent: В начале этого метода для переменных button1, label1 и textBox1 создаются соответствующие объекты: this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); Далее для каждого элемента управления происходит установка его свойств. Например, для кнопки button1 это выглядит так: this.button1.Location = new System.Drawing.Point(92, 52); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(61, 26); this.button1.TabIndex = 0; this.button1.Text = "Делай"; this.button1.UseVisualStyleBackColor = true; Напомним, что события Click кнопки Button1 был предусмотрен обработчик, который «привязан» к событию оператором: this.button1.Click += new System.EventHandler(this.button1_Click); Аналогично выглядит настройка элементов label1 и textBox1. Для того чтобы форма визуально отображала элементы управления, недостаточно того, что эти элементы являются переменными класса формы. Необходимо разместить их в специальной коллекции, доступной через свойство Controls базового класса Form. В сгенерированном коде этим занимаются следующие строки: this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Controls.Add(this.button1); В следующем листинге рассмотренная структура программного кода представлена схематично. Файл Program.cs class Program {... static void Main() {... Application.Run(new Form1()); } } Файл Form1.cs public partial class Form1: Form { public Form1() { InitializeComponent(); } // обработчики событий private void button1_Click(object sender, EventArgs e) {...} ... } Файл Form1.Designer.cs partial class Form1 {... #region Windows Form Designer generated code private void InitializeComponent() { //создание объектов-элементов управления this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.textBox1 = new System.Windows.Forms.TextBox(); // button1 this.button1.Location = new System.Drawing.Point(192, 23); ... this.button1.Click += new System.EventHandler(this.button1_Click); // label1 ... // textBox1 ... // Form1 ... this.Controls.Add(this.textBox1); this.Controls.Add(this.label1); this.Controls.Add(this.button1); } #endregion //описание переменных для элементов управления private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox textBox1; } Далее можно рассмотреть несколько других примеров: - крестики-нолики. Дальнейшая логика курса – рассмотрим способы постоянного хранения. Тогда можно будет рассмотреть архитектурные принципы, основанные на разделении на бизнес-логику, визуальный интерфейс и источник данных. Сохранение результатов Возможность хранить информацию в постоянной памяти является необходимым свойством большинства программных приложений. Для этого используются несколько различных подходов: 1. Файловый ввод-вывод. 2. Механизм сериализации. 3. Базы данных. Далее рассмотрим, как практически организовать использование постоянной памяти с помощью файлов и сериализации. Работа с базами данных в этом пособии не рассматривается. Работа с файлами – наиболее традиционный способ использования постоянной памяти. Для этого в С# имеется множество классов, содержащихся в пространстве имен System.IO. Классы этого пространства имен можно разбить на 2 категории: 1. Классы, управляющие объектами файловой системы. 2. Классы, использующие потоки.
|
||||
|
Последнее изменение этой страницы: 2021-12-15; просмотров: 115; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.38 (0.008 с.) |