Симон Робинсон - 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 - читать книгу онлайн бесплатно, автор Симон Робинсон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Можно также явно преобразовать Pointв Sizeи наоборот:

Point TopLeft = new Point(10, 10);

Size S1 = (Size)TopLeft;

Point P1 = (Point)S1;

При этом преобразовании значению S1.Widthприсваивается значение TopLeft.X, а S1.HeightTopLeft.Y. Следовательно, S1содержит (10, 10). P1будет содержать те же значения, что и TopLeft.

Rectangle и RectangleF

Эти структуры предcтавляют прямоугольную область (обычно на экране). Так же, как и в случае с Pointи Size, мы рассмотрим только структуру Rectangle. RectangleFпо сути идентична, за исключением того, что свойства, представляющие размеры, используют float, в то время как в Rectangleиспользует int.

Rectangleможно рассматривать как точку в верхнем левом углу прямоугольника и Size, которая представляет его размер. Один из его конструкторов действительно получает Pointи Sizeв качестве параметров, Можно увидеть это переписывая предыдущий код рисования прямоугольника

Graphics dc = е Graphics;

Pen BluePen = new Pen(Color Blue, 3);

Point TopLeft = new Point(0, 0);

Size HowBig = new Size(50, 50);

Rectangle RectangleArea = new Rectangle(TopLeft, HowBig);

dc.DrawRectangle(BluePen, RectangleArea);

Этот код также использует альтернативное переопределение Graphics.DrawRectangle(), который получает Penи структуру Rectangleв качестве своих параметров.

Можно также создать Rectangle, используя значения в таком порядке как отдельные числа: верхняя левая горизонтальная координата, верхняя левая вертикальная координата, отдельно ширина и высота:

Rectangle RectangleArea = new Rectangle(0, 0, 50, 50)

Rectangleимеет достаточно много свойств чтения-записи для задания или извлечения его размеров в различных комбинациях:

Свойство Описание
int Left х-координата левого края
int Right х-координата правого края
int Top у-координата верхнего края
int Bottom у-координата нижнего края
int X То же самое что и Left
int Y То же самое, что и Top
int Width Ширина прямоугольника
int Height Высота прямоугольника
Point Location Верхний левый угол
Size Size Размер прямоугольника

Отметим, что эти свойства не все независимы,— например задание Widthбудет влиять на значение Right.

Region

Мы упомянем здесь о существовании класса System.Drawing.Region, однако не будем рассматривать его подробно в этой книге. Regionпредставляет область на экране, которая имеет некоторую сложную форму. Например, затененная область на рисунке может быть представлена Region:

Процесс инициализации экземпляра Regionявляется сам по себе достаточно сложным - фото 99

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

Замечание об отладке

Теперь мы готовы перейти к более сложным рисункам. Но сначала необходимо поговорить об отладке. Если попробовать задать точки прерывания для примеров в этой главе, то можно заметить, что отладка графических программ не является такой же простой задачей, как отладка других частей программы. Это связано с тем, что сам факт входа и выхода из отладчика часто приводит к отправке приложению сообщений Paint. В результате может оказаться, что задание точки прерывания в методе OnPaintзаставляет приложение просто воспроизводить себя непрерывно, и поэтому оно не может делать ничего другого.

Типичный сценарий будет таков: необходимо определить, почему приложение что-то выводит неправильно, поэтому в OnPaintзадается точка прерывания. Как ожидается, приложение доходит до точки прерывания и вызывает отладчик, в результате появляется окно среды разработки MDI.

В этом окне можно проверить значения некоторых переменных и даже найти что-нибудь полезное. Для продолжения работы нажмите клавишу F5, чтобы можно было увидеть, что происходит, когда приложение выводит что-то еще после выполнения некоторой обработки. К сожалению, в этот момент окно приложения выходит на передний план и Windows обнаруживает, что форма снова видна и немедленно посылает событие Paint. Это означает, конечно, что точка прерывания тут же сработает снова. Но обычно требуется, чтобы точка прерывания сработала позже, когда приложение нарисует что-то интересное, возможно, после выбора некоторых пунктов меню для чтения из файла или другого способа изменения изображения. Похоже на тупик. Либо не нужно вообще создавать точку прерывания в OnPaint, либо приложение никогда не сможет выйти за точку, где выводится его начальное окно.

Однако существуют способы обхода этой проблемы.

Если имеется достаточно большой экран, то простейшим способом является сохранение окна среды разработчика открытым, но так, чтобы оно не закрывало окно приложения. К сожалению, в большинстве случаев это не очень практичное решение, так как окно среды разработки будет слишком маленьким. Альтернативное решение, которое использует тот же самый принцип, состоит в том, что приложение должно объявить себя самым верхним приложением во время отладки. Это делается заданием свойства TopMostкласса Form, что можно легко осуществить в методе InitializeComponent:

private void InitializeComponent() {

this.TopMost = true;

Это означает, что приложение никогда не будет закрыто другими окнами (только другими самыми верхними окнами). Оно всегда остается поверх других окон, даже когда другое приложение получает фокус. Так ведет себя менеджер задач.

Даже при использовании этой техники необходимо быть внимательным, так как никогда нет полной уверенности в том, что Windows не решит по какой-либо причине инициировать событие Paint. Если действительно в OnPaintтребуется выявить некоторую проблему, возникающую при некоторых специальных условиях (например, приложение выполняет рисование после выбора определенного пункта в меню и что-то происходит в этом месте неправильно), то лучше всего поместить пустой код в OnPaint, который проверит некоторое условие, справедливое только в определенных обстоятельствах. А затем помещаем точку прерывания внутрь блока ifследующим образом:

protected override void OnPaint(PaintEventArgs e) {

// Condition() оценивается как true, когда требуется прерывание

if (Condition() == true) {

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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