Симон Робинсон - C# для профессионалов. Том II

Тут можно читать онлайн Симон Робинсон - C# для профессионалов. Том II - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Лори, год 2003. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# для профессионалов. Том II
  • Автор:
  • Жанр:
  • Издательство:
    Лори
  • Год:
    2003
  • Город:
    Москва
  • ISBN:
    5-85582-187-0
  • Рейтинг:
    4.88/5. Голосов: 81
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 100
    • 1
    • 2
    • 3
    • 4
    • 5

Симон Робинсон - C# для профессионалов. Том II краткое содержание

C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
C# для профессионалов

Платформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.

В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.

Для кого предназначена эта книга

Эта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.

Основные темы книги

• Все особенности языка C#

• C# и объектно-ориентированное программирование

• Приложения и службы Windows

• Создание web-страниц и web-служб с помощью ASP NET

• Сборки .NET

• Доступ к данным при помощи ADO NET

• Создание распределённых приложений с помощью NET Remoting

• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II - читать онлайн бесплатно полную версию (весь текст целиком)

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

using Microsoft.Win32;

Нам необходимо добавить одно поле к основному классу Form1, который будет представлять окно диалога выбора цвета.

public class Form1 : System.Windows.Forms.Form {

///



/// Обязательная переменная проектировщика.

///

private System.СomponentModel.Container components;

private System.Windows.Forms.ListBox ListBoxMessages;

private system.Windows.Forms.Button buttonChooseColor;

ColorDialog ChooseColorDialog = new ColorDialog();

Довольно много действий происходит в конструкторе Form1:

public Form1() {

InitializeComponent();

buttonChooseColor.Click += new EventHandler(OnClickChooseColor);

try {

if (ReadSettings() == false)

listBoxMessages.Items.Add("No information in registry");

else

listBoxMessages.Items.Add("Information read in from registry");

StartPosition = FormStartPosition.Manual;

} catch (Exception e) {

listBoxMessages.Items.Add("A problem occured reading in data from registry:");

listBoxMessages.Items.Add(e.Message);

}

}

В этом конструкторе мы начинаем с создания метода обработки события нажатия пользователем кнопки. Обработчиком является метод с именем OnClickChooseColor(см. ниже). Считывание конфигурационной информации делается с помощью другого метода — ReadSettings(). ReadSettings()возвращает true, если находит информацию в реестре, и false, если не находит (что будет, по-видимому, иметь место, так как приложение выполняется первый раз). Мы помещаем эту часть конструктора в блок tryна случай возникновения каких-либо исключений при считывании значений реестра (это может произойти, если вмешался некоторый пользователь и сделал какие-то изменения с помощью regedit).

Инструкция StartPosition = FormStartPosition.Manual;говорит форме взять свою начальную позицию из свойства DeskTopLocationвместо используемого по умолчанию положения в Window (поведение по умолчанию). Возможные значения берутся из перечисления FormStartPosition.

SelfPlacingWindowтакже является одним из немногих приложений в этой книге, для которого существенно используется добавление кода в метод Dispose(). Напомним, что Dispose()вызывается, когда приложение завершается нормально, так что это идеальное место для сохранения конфигурационной информации в реестре. Это делается с помощью другого метода, который будет написан,— SaveSettings():

///



/// Очистить все использованные ресурсы

///

public override void Dispose() {

SaveSettings();

base.Dispose();

if(components != null) components.Dispose();

}

SaveSettings()и ReadSettings()являются методами, которые содержат код для работы с интересующим нас реестром, но прежде чем их рассматривать, необходимо разобраться с обработкой события, возникающего при нажатии пользователем на кнопку. Это предполагает вывод диалогового окна выбора цвета и задание цвета фона в соответствии с выбором пользователя:

void OnClickChooseColor(object Sender, EventArgs e) {

if (ChooseColorDialog.ShowDialog() == DialogResult.OK)

BackColor = ChooseColorDialog.Color;

}

Теперь посмотрим, как сохраняются настройки:

void SaveSettings() {

RegistryKey SoftwareKey = Registry.LocalMachine.OpenSubKey("Software", true);

RegistryKey WroxKey = SoftwareKey.CreateSubKey("WroxPress");

RegistryKey SelfPlacingWindowKey = WroxKey.CreateSubKey("SelfPlacingWindowKey");

SelfPlacingWindowKey.SetValue("BackColor", (object)BackColor.ToKnownColor());

SelfPlacingWindowKey.SetValue("Red", (object)(int) BackColor.R);

SelfPlacingWindowKey.SetValue("Green", (object)(int)BackColor.G);

SelfPlacingWindowKey.SetValue("Blue", (object)(int)Backcolor.В);

SelfPlacingWindowKey.SetValue("Width", (object)Width);

SelfPlacingWindowKey.SetValue("Height", (object)Height);

SelfPlacingWindowKey.SetValue("X", (object)DesktopLocation.X);

SelfPlacingWindowKey.SetValue("Y", (object)DesktopLocation.Y);

SelfPlacingWindowKey.SetValue("WindowState", (object)WindowState.ToString());

}

Мы начали с перемещения в реестре, чтобы получить ключ реестра HKLM/Software/WroxPress/SelfPlacingWindowс помощью продемонстрированной выше техники, начиная со статического свойства Registry.LocalMachine, которое представляет улей HKLM:

RegistryKey SoftwareKey = Registry.LocalMachine.OpenSubKey("Software" , true);

RegistryKey WroxKey = SoftwareKey.CreateSubKey("WroxPress");

RegistryKey SelfPlacingWindowKey = WroxKey.CreateSubKey("SelfPlacingWindowKey");

Мы используем метод RegistryKey.OpenSubKey(), а не RegistryKey.CreateSubKey(), позволявший добраться до ключа HKLM/Software. Так происходит вследствие уверенности, что этот ключ уже существует, в противном случае имеется серьезная проблема с компьютером, так как этот ключ содержит настройки для большого объема системного программного обеспечения. Мы также указываем, что нам требуется доступ для записи в этот ключ. Это вызвано тем, что если ключ WroxPressеще не существует, нам нужно будет его создать, что включает запись в родительский ключ.

Следующий ключ для перехода — HKLM/Software/WroxPress, но так как мы не уверены, что ключ уже существует, то используем CreateSubKey()для его автоматического создания, если он не существует. Отметим, что CreateSubKey()автоматически предоставляет доступ для записи к рассматриваемому ключу. Когда мы достигнем HKLM/Software/Wrox. Press/SelfPlacingWindow, то останется просто вызвать метод RegistryKey.SetValue()несколько раз, чтобы создать или задать соответствующие значения. Существуют, однако, некоторые осложнения.

Первое. Можно заметить что мы задействуем пару классов, которые раньше не встречались: свойство DeskTopPositionкласса Formуказывает позицию верхнего левого угла экрана и имеет тип Point. Рассмотрим структуру Pointв главе GDI+. Здесь необходимо знать только, что она содержит два целых числа — Xи Y, которые представляют горизонтальную и вертикальную позиции на экране. Мы также используем три свойства члена класса Color: R, Gи B. Colorпредставляет цвет, а его свойства задают красный, зеленый и синий компоненты, которые составляют цвет и имеют тип byte. Также применяется свойство Form. WindowState, содержащее перечисление, которое задает текущее состояние окна — minimized, maximizedили restored.

Отметим, что при преобразовании типов SetValue()получает два параметра: строку, которая задает имя ключа, и экземпляр System.Object, содержащий значение. SetValueимеет возможность выбора формата для хранения значения, он может сохранить его как REG_SZ, REG_BINARYили REG_DWORD, и он в действительности делает правильный выбор в зависимости от заданного типа данных. Поэтому для WindowsStateпередается строка и SetValue()определяет, что она должна быть преобразована в REG_SZ. Аналогично для различных позиций и размеров, которые мы передаем, целые значения будут преобразованы в REG_DWORD. Однако компоненты цвета являются более сложными, но мы хотим, чтобы они также хранились как REG_DWORD, потому что они имеют числовые типы. Однако если метод SetValue()видит, что данные имеют тип byte, он будет сохранять их гак строку REG_SZв реестре. Чтобы избежать этого, преобразуем компоненты цвета в int.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# для профессионалов. Том II отзывы


Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x