Ciao a tutti,
Mi sono ritrovato in una problematica, sicuramente comune a voi ma che io sto iniziando ad affrontare oggi.
Al fine di diminuire la qta di codice rendendolo più manutenibile, ho iniziato a centralizzare la creare di una particolare label + progress bar che viene di fatto utilizzata in tutte le mie form.
In particolare questa label era inizialmente presente in tutte le form e quando c'era da modificare qualcosa ovviamente impazzivo, e altri problemi connessi.
Il mio oggetto (Pausa) implemente semplicemente le funzioni CRUD, ed infine ho aggiunto queste funzioni.
codice:
Public Sub prepareLabelAndStatusBar(ByRef frm As Form)
Dim lblPausa As New Label
lblPausa.Name = "lblPausa"
lblPausa.Size = New System.Drawing.Size(670, 360) 'set your size (if required)
frm.Controls.Add(lblPausa) 'add your new control to your forms control collection
lblPausa.Location = New System.Drawing.Point((lblPausa.Parent.Width \ 2) - (lblPausa.Width \ 2), (lblPausa.Parent.Height \ 2) - (lblPausa.Height \ 2) + 360) 'set your location
End Sub
Public Sub updateTextLblPausa(ByRef frm As Form, ByVal txt As String)
Dim lblPausa As Label = frm.Controls.Find("lblPausa", True).FirstOrDefault()
lblPausa.Text = txt
End Sub
Public Function isVisible(ByRef frm As Form) As Boolean
Dim lblPausa As Label = frm.Controls.Find("lblPausa", True).FirstOrDefault()
Return lblPausa.Visible
End Function
Public Sub showPausa(ByRef frm As Form)
Dim lblPausa As Label = frm.Controls.Find("lblPausa", True).FirstOrDefault()
lblPausa.Visible = True
End Sub
Public Sub hidePausa(ByRef frm As Form)
Dim lblPausa As Label = frm.Controls.Find("lblPausa", True).FirstOrDefault()
lblPausa.Visible = False
End Sub
Nel load della form faccio il mio prepare che mi genera la label.
E poi vado ad utilizzare tutte le mie funzioni, passando il form chiamante come riferimento.
Sicuramente ho dei vantaggi con questo trucco, ma ho anche molte perplessità e volevo appunto sentire voi cosa ne pensavato o come avresti gestito una situazione del genere.
Ciao
Paolo