Spero di aver capito.
I metodi sono all'interno di una classe, che ora riporto.
Di fatto mi consigli di passare il form in una proprietà della classe e non al singolo metodo?
Ma in questo caso io dipendo da una form nella creazione della classe, sto leggendo sempre di più dove si consiglia di inserire meno dipendenze possibili quando si crea un oggetto.
codice:
Imports System.Data.SqlClient
Public Class pausa
'Dettaglio della pausa
Public id As Integer
Public idBanco As Integer
Public ora As TimeSpan
Public durata As Integer
Public fatta As Boolean
Public attiva As Boolean
Public db As db
Private lastError As String
Public Function getPauseFromIdBanco(ByVal idBanco As Integer) As DataTable
Try
db.SQL = "SELECT * FROM banchiPause WHERE pausa_idBanco = '" & idBanco & "' "
Return db.getDT("contProgDetails")
Catch ex As Exception
Me.lastError = ex.Message
Return New DataTable
End Try
End Function
Public Function loadById(ByVal id As Integer) As Boolean
db.SQL = "SELECT * FROM banchiPause WHERE pausa_id = '" & id & "' "
If Me.load() Then
Return True
End If
Return False
End Function
Private Function load()
Try
Dim dt As DataTable
dt = db.getDT("contProgDetails")
If dt.Rows.Count <> 1 Then
Throw New Exception("Dettagli Programma non trovati")
End If
Me.id = dt(0)("pausa_id")
Me.idBanco = dt(0)("pausa_idBanco")
Me.ora = dt(0)("pausa_ora")
Me.durata = dt(0)("pausa_durata")
Me.fatta = False
Me.attiva = False
Return True
Catch ex As Exception
Me.lastError = ex.Message
db.Disconnetti()
Return False
End Try
End Function
Public Function save() As Boolean
Try
db.SQL = "UPDATE [dbo].[banchiPause] SET " &
",[pausa_idBanco] = @pausa_idBanco" &
",[pausa_ora] = @pausa_ora " &
",[pausa_durata] = @pausa_durata " &
"WHERE [pausa_id] = @pausa_id " &
"IF @@ROWCOUNT = 0 " &
"INSERT INTO [dbo].[banchiPause]" &
"([pausa_idBanco]" &
",[pausa_ora]" &
",[pausa_durata])" &
"VALUES" &
"(@pausa_idBanco2" &
",@pausa_ora2" &
",@pausa_durata2) "
Dim parameters() As SqlParameter = New SqlParameter() _
{
New SqlParameter("@pausa_idBanco", SqlDbType.Int) With {.Value = db.getValueOrDbNull(idBanco)},
New SqlParameter("@pausa_ora", SqlDbType.Time) With {.Value = db.getValueOrDbNull(ora)},
New SqlParameter("@pausa_durata", SqlDbType.Int) With {.Value = db.getValueOrDbNull(durata)},
New SqlParameter("@pausa_id", SqlDbType.Int) With {.Value = db.getValueOrDbNull(id)},
New SqlParameter("@pausa_idBanco2", SqlDbType.Int) With {.Value = db.getValueOrDbNull(idBanco)},
New SqlParameter("@pausa_ora2", SqlDbType.Time) With {.Value = db.getValueOrDbNull(ora)},
New SqlParameter("@pausa_durata2", SqlDbType.Int) With {.Value = db.getValueOrDbNull(durata)}
}
db.exeNonQueryParam(parameters)
Return True
Catch ex As Exception
Me.lastError = ex.Message
Return False
End Try
Return True
End Function
Public Function getLastError() As String
Dim errStr As String = lastError
lastError = ""
Return errStr
End Function
Public Sub prepareLabelAndStatusBar(ByRef frm As Form)
Dim lblPausa As New Label
lblPausa.Name = "lblPausa"
lblPausa.Size = New System.Drawing.Size(670, 360)
lblPausa.Font = New Font("Microsoft Sans Serif", 48, FontStyle.Bold)
lblPausa.BackColor = SystemColors.ActiveCaption
lblPausa.ForeColor = Color.White
lblPausa.TextAlign = ContentAlignment.MiddleCenter
lblPausa.Visible = False
lblPausa.Left = (frm.Width \ 2) - (670 \ 2)
lblPausa.Top = (frm.Height \ 2) - (360 \ 2) - 70
frm.Controls.Add(lblPausa)
Dim pBarrPausa As New ProgressBar
pBarrPausa.Name = "pBarrPausa"
pBarrPausa.Width = 670
pBarrPausa.Height = 70
pBarrPausa.Left = (frm.Width \ 2) - (lblPausa.Width \ 2)
pBarrPausa.Top = (frm.Height \ 2) - (lblPausa.Height \ 2) + 360 - 70
pBarrPausa.Value = 0
pBarrPausa.BringToFront()
pBarrPausa.Visible = False
frm.Controls.Add(pBarrPausa)
End Sub
Public Sub updatePausa(ByRef frm As Form, ByVal txt As String, ByVal valueProgressBar As Integer, ByVal maxValue As Integer)
Dim lblPausa As Label = frm.Controls.Find("lblPausa", True).FirstOrDefault()
lblPausa.Text = txt
Dim pBarrPausa As ProgressBar = frm.Controls.Find("pBarrPausa", True).FirstOrDefault()
pBarrPausa.Maximum = maxValue * 60
pBarrPausa.Value = valueProgressBar
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
lblPausa.BringToFront()
Dim pBarrPausa As ProgressBar = frm.Controls.Find("pBarrPausa", True).FirstOrDefault()
pBarrPausa.Visible = True
pBarrPausa.BringToFront()
End Sub
Public Sub hidePausa(ByRef frm As Form)
Dim lblPausa As Label = frm.Controls.Find("lblPausa", True).FirstOrDefault()
lblPausa.Visible = False
Dim pBarrPausa As ProgressBar = frm.Controls.Find("pBarrPausa", True).FirstOrDefault()
pBarrPausa.Visible = False
pBarrPausa.BringToFront()
End Sub
End Class