ПОНЯТНО О Visual Basic NET (том 3)




Создаем непрямоугольную форму


Очевидно, что при проектировании все непрямоугольные окна были непрямоугольными формами. Давайте создадим непрямоугольную форму, например, такую, как на Рис. 17.7. Вы видите, что форма, имеющая контур Буратино, которого мы создавали в предыдущем разделе, уже запущена и видна на экране среди прочих окон. Из всех элементов управления на форме видна лишь половинка кнопки, но это только для иллюстрации – элементы управления размещаются на фигурной форме так же привычно и легко, как и на обычной.

Рис. 17.7

Вот решающий задачу код, значительную часть которого мы скопировали из предыдущего раздела:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Гр As Graphics = Me.CreateGraphics

        Dim Путь As New Drawing2D.GraphicsPath

        Путь.AddArc(20, 30, 120, 120, 0, 330)

        Путь.AddArc(220, 30, 10, 10, 270, 180)

        Путь.CloseFigure()

        Путь.AddEllipse(90, 50, 30, 30)

        Me.Region = New Region(Путь)

 End Sub

Пояснения: Первые шесть строк процедуры практически копируют первые шесть строк из предыдущего подраздела. Новостью для нас здесь является только последняя строка, в которой и заключен весь смысл. У формы и у элементов управления имеется свойство Region, которое представляет графическую область поверхности экрана, предназначенную для прорисовывания компьютером этого объекта. По умолчанию она имеет прямоугольные очертания. Однако мы можем изменить значение этого свойства. Правая часть строки создает объект класса Region (не путать со свойством Region). Объекты этого класса можно создавать на основе графического пути, что мы и сделали. Они тоже хранят в себе некую графическую область (в нашем случае это Буратино) и могут выполнять над ней некоторые преобразования. Но нас преобразования не интересуют, нам Буратино подходит и такой, какой он есть. Мы просто присваиваем свойству Region формы объект класса Region, хранящий контур Буратино. С этого момента контур нашей формы изменился, им стал контур созданного нами пути.




Содержание  Назад  Вперед