![]() |
António Roberto Software |
|
Linguagens de Programação
2
|
3º ano da
Licenciatura em Informática de Gestão
|
Aula de 29 de Novembro de 2002
Windows Forms (sequência da aula anterior: um cliente mais rico para a classe Carro )
1ª Parte: Desenho da interface com o utilizador com o Form Designer 2ª Parte
Se observar com atenção o código da classe FormCliCarro resultante da solução da aula anterior, verificará o seguinte:
- A classe FormCliCarro é derivada da classe Form
- Public Class FormCliCarro
Inherits System.Windows.Forms.Form- Quando o utilizador interage com o Form Designer, quer para adicionar controls quer para alterar algumas das propriedades desses controls, o Form Designer gera código automaticamente na região:
- um objecto da classe FormCliCarro é composto por objectos de diversas classes da família Control:
- Friend WithEvents trbVelocidade As TrackBar
Friend WithEvents lblVelocidade As Label
Friend WithEvents pgbCombustivel As ProgressBar
Friend WithEvents txtKlms As TextBox
Friend WithEvents btnAtestar As Button
...
- as classes TrackBar, (...), TextBox, Button, ... são derivadas da classe Control
- repare no uso da palavra WithEvents:
- o utilizador, ao interagir com os objectos colocados na form, provoca a ocorrência de determinados eventos
- o programador pode dar a resposta adequada aos eventos desses objectos. Ex:
- Private Sub TrbVelocidade_Scroll(...) Handles trbVelocidade.Scroll
- Private Sub btnTerminar_Click(...) Handles btnTerminar.Click
- os controls são criados na subrotina InitializeComponent(), que é chamada no construtor
- Me.trbVelocidade = New TrackBar()
Me.lblVelocidade = New Label()
Me.pgbCombustivel = New ProgressBar()
Me.btnAtestar = New Button()
Me.txtKlms = New TextBox()
...- as propriedades dos controls são alteradas também na subrotina InitializeComponent()
- Me.trbVelocidade.Location = New System.Drawing.Point(16, 32)
Me.trbVelocidade.Maximum = 100
Me.trbVelocidade.Name = "trbVelocidade"
Me.trbVelocidade.Size = New System.Drawing.Size(248, 42)
Me.trbVelocidade.TabIndex = 0
Me.trbVelocidade.TickFrequency = 10
Me.trbVelocidade.TickStyle = TickStyle.TopLeft
...