VB.NETを咥えてWindows.Formsをつつく3-継承。ピヨ伝染♪
前回のプログラムでボクはどうしても気になる事があったんだ。それはフォームのキャプションに「ピヨ」数が多くなったら時全部見えなかったことピヨォ。そんなの嫌だからボクは全部見えるように新しいフォームを作成する事を決心したピヨッ!という事で新しいPiyoFormをご覧あれ!
Imports System
Imports System.Text
Imports System.Drawing
Imports System.Windows.Forms
Public Class PiyoForm
Inherits Form 'Formを継承して新しいクラスを作る♪
Sub New(ByVal count As Integer)
Dim str As StringBuilder = New StringBuilder(count * 2)
For i As Integer = 0 To count
str.Append("ピヨ")
Next
Me.Text = str.ToString()
End Sub
Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
Invalidate()
End Sub
Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
MyBase.OnPaint(e)
'線画処理の準備
Dim grfx As Graphics = e.Graphics
Dim rang As RectangleF = _
New RectangleF(0, 0, ClientSize.Width, ClientSize.Height)
'声を大にして言いたい
Dim font As Font = _
New Font(Me.Font.FontFamily, Me.Font.Size + 2, FontStyle.Bold)
'思いっきりピヨと叫ぶ!
grfx.DrawString(Me.Text, font, Brushes.Black, rang)
End Sub
End Class
Public Class FormProgram
Public Shared Sub Main()
Dim frm As PiyoForm = Nothing
For i As Integer = 0 To 100
frm = New PiyoForm(i) '作りやすい
frm.Show()
Next
frm.BackColor = Color.Red
Application.Run(frm)
End Sub
End Class
このサンプルプログラムを実行して♪今度の新しいクラスは無事ピヨが全部見えるピヨ♪♪しかも作り方も簡単になったしね。この様にして既存の型を拡張して新しい型を定義する事を継承とイメージすればいいピヨ。学術的に言うと不完全だけど慣れないうちは気にしない♪気にしない♪この例の様に、何度も同じコードを書く手間を省きたい時に使用したらいいと思う。えっ?PiyoFormを何度も使うのかって?もちろん使うピヨ。素敵なクラスだもんね♪
今回はこれでお終い。次回お楽しみに♪