| netlib.narod.ru | < Назад | Оглавление | Далее > |
Какие преимущества дает наследование от класса Form в сравнении с созданием экземпляра этого класса? Хотя большинство методов и свойств Form определены как public, некоторые важные свойства определены как protected. Эти защищенные методы и свойства доступны только наследникам Form. Одно из таких защищенных свойств — ResizeRedraw, которое я рассмотрю в главе 3.
Один из защищенных методов, наследуемых Form от Control — OnPaint. Однако он вам нужен не для того, чтобы его вызывать, но чтобы переопределить — тогда вам не потребуется подключать обработчик события Paint. У метода OnPaint один параметр — объект типа PaintEventArgs. Можно из этого параметра получить объект Graphics точно так же, как и в обработчике события Paint.
Вот окончательный вариант программы Windows Forms «hello-world».
HelloWorld.cs
//---------------------------------------------
// HelloWorld.cs (C) 2001 by Charles Petzold
//---------------------------------------------
using System;
using System.Drawing;
using System.Windows.Forms;
class HelloWorld: Form
{
public static void Main()
{
Application.Run(new HelloWorld());
}
public HelloWorld()
{
Text = "Hello World";
BackColor = Color.White;
}
protected override void OnPaint(PaintEventArgs pea)
{
Graphics grfx = pea.Graphics;
grfx.DrawString("Hello, Windows Forms!", Font,
Brushes.Black, 0, 0);
}
}
Это официальный, сертифицированный, проверенный программистами и одобренный мамой способ создания формы на языке С# при помощи библиотеки классов Windows Forms. Вот почему это первая программа книги, названная просто HelloWorld. (Правда, в следующей главе я покажу лучший способ указания цвета фона и цвета текста.) Обратите внимание, что в OnPaint я ничего не ставил перед Font. Методу OnPaint не нужен параметр objSender, так как форма, для которой вызывается OnPaint, всегда определяется как this.
Вот как выглядит окно программы:

Но всегда найдется умник, который сидит на галерке и тянет руку, нахально спрашивая: «А можно отцентрировать текст в окне?»
Да, можно, и в следующей главе я покажу три различных способа, как это сделать.
| netlib.narod.ru | < Назад | Оглавление | Далее > |