从另一个窗体vb.net调用方法
我做这个应用程序已经有一段时间了,现在我想通过主窗体调用一个方法,并将它包含到另一个窗体中,使它运行我想要的。在我的主要形式中,这是我的方法:从另一个窗体vb.net调用方法,vb.net,Vb.net,我做这个应用程序已经有一段时间了,现在我想通过主窗体调用一个方法,并将它包含到另一个窗体中,使它运行我想要的。在我的主要形式中,这是我的方法: Public Sub MostrarResultadoTotal() SQLCon = New SqlConnection SQLCon.ConnectionString = "......" Try SQLCon.Open() Query = "SELECT CA
Public Sub MostrarResultadoTotal()
SQLCon = New SqlConnection
SQLCon.ConnectionString = "......"
Try
SQLCon.Open()
Query = "SELECT
CAST(SUM(CAST(Filesize as float)) / 1024 / 1024 AS DECIMAL(10,2))
FROM infofile"
SqlCmd = New SqlCommand(Query, SQLCon)
SqlDR = SqlCmd.ExecuteReader
If SqlDR.Read() Then
If SqlDR.IsDBNull(0) Then
lblResultadoTotal.Text = "0,00"
Else
lblResultadoTotal.Text = SqlDR.GetDecimal(0)
End If
End If
SQLCon.Close()
Catch ex As SqlException
MsgBox(ex.Message)
Finally
SQLCon.Dispose()
End Try
End Sub
我想在删除按钮上调用这个。你知道我怎样才能解决我的问题吗
方法如下:
'Mudar a cor das labels dependendos to tamanho total
Sub ChangeLabelColor()
If lblResultadoTotal.Text <= 3.9 Then
lblResultadoTotal.ForeColor = Color.Green
lblGB.ForeColor = Color.Green
ElseIf (lblResultadoTotal.Text >= 4) And (lblResultadoTotal.Text <= 6.9) Then
lblResultadoTotal.ForeColor = Color.Orange
lblGB.ForeColor = Color.Orange
ElseIf lblResultadoTotal.Text >= 7 Then
lblResultadoTotal.ForeColor = Color.Red
lblGB.ForeColor = Color.Red
End If
'Mudar a cor das标签依赖于tamanho总计
子ChangeLabelColor()
如果lblResultadTotal.Text=4)和(lblResultadTotal.Text=7),则
lblResultadoTotal.ForeColor=颜色.红色
lblGB.ForeColor=颜色。红色
如果结束
在这种情况下,您的方法包含数据访问逻辑,它应该与UI层逻辑(表单)分离。它应该位于单独的类中,然后由两个表单调用
Friend Class DataAccess
Public Function MostrarResultadoTotal() As String
SQLCon = New SqlConnection
SQLCon.ConnectionString = "......"
Try
SQLCon.Open()
Query = "SELECT
CAST(SUM(CAST(Filesize as float)) / 1024 / 1024 AS DECIMAL(10,2))
FROM infofile"
SqlCmd = New SqlCommand(Query, SQLCon)
SqlDR = SqlCmd.ExecuteReader
If SqlDR.Read() Then
If SqlDR.IsDBNull(0) Then
Return "0,00"
Else
Return SqlDR.GetDecimal(0)
End If
End If
Catch ex As SqlException
MsgBox(ex.Message)
Finally
' Always close connection
SQLCon.Close()
SQLCon.Dispose()
End Try
End Function
End Class
然后,从表单中声明日期访问逻辑的一个实例:
Dim dataAccess = New DataAccess();
并称之为:
lblResultadoTotal.Text = dataAccess.MostrarResultadoTotal()
适用于您的标签颜色
改变标签颜色是UI逻辑,从您的例子中,它也是可重用的。因此,您应该考虑创建一个新的类来管理常见的UI逻辑:
Friend Class CommonUILogic
Function GetLabelColor(value As Integer) As Color
If value <= 3.9 Then
Return Color.Green
ElseIf (value >= 4) And (value <= 6.9) Then
Return Color.Orange
ElseIf value >= 7 Then
Return Color.Red
End If
End Function
End Class
在这种情况下,您的方法包含数据访问逻辑,它应该与UI层逻辑(表单)分离。它应该位于单独的类中,然后由两个表单调用
Friend Class DataAccess
Public Function MostrarResultadoTotal() As String
SQLCon = New SqlConnection
SQLCon.ConnectionString = "......"
Try
SQLCon.Open()
Query = "SELECT
CAST(SUM(CAST(Filesize as float)) / 1024 / 1024 AS DECIMAL(10,2))
FROM infofile"
SqlCmd = New SqlCommand(Query, SQLCon)
SqlDR = SqlCmd.ExecuteReader
If SqlDR.Read() Then
If SqlDR.IsDBNull(0) Then
Return "0,00"
Else
Return SqlDR.GetDecimal(0)
End If
End If
Catch ex As SqlException
MsgBox(ex.Message)
Finally
' Always close connection
SQLCon.Close()
SQLCon.Dispose()
End Try
End Function
End Class
然后,从表单中声明日期访问逻辑的一个实例:
Dim dataAccess = New DataAccess();
并称之为:
lblResultadoTotal.Text = dataAccess.MostrarResultadoTotal()
适用于您的标签颜色
改变标签颜色是UI逻辑,从您的例子中,它也是可重用的。因此,您应该考虑创建一个新的类来管理常见的UI逻辑:
Friend Class CommonUILogic
Function GetLabelColor(value As Integer) As Color
If value <= 3.9 Then
Return Color.Green
ElseIf (value >= 4) And (value <= 6.9) Then
Return Color.Orange
ElseIf value >= 7 Then
Return Color.Red
End If
End Function
End Class
让一些东西
共享总是最糟糕的解决方案-你会热衷于传递实例-并使用它们。这被称为“OOP”.Unrelated:你可能有兴趣知道-这是try/finally的缩写,可以帮助阅读。共享总是最糟糕的解决方案
我不想说它不是。你如何传递方法/函数?请解释…如果他有一个类实例,他不需要共享…另一方面,ma将其设置为单独类中的函数,并在需要时调用它…我曾尝试过这样做,但在我更改它后,它给了我一个错误“无法从共享方法或共享成员中引用类的实例…”是的。Sql太@Zagglermaking somethingshared
始终是最糟糕的解决方案-您希望ass实例-并使用它们。这称为“OOP”.Unrelated:你可能有兴趣知道-这是try/finally的缩写,可以帮助阅读。共享总是最糟糕的解决方案
我不想说它不是。你如何传递方法/函数?请解释…如果他有一个类实例,他不需要共享…另一方面,ma将它设置为单独类中的函数,并在需要时调用它…我尝试过这样做,但在我更改它后,它给了我一个错误“无法从共享方法或共享成员中引用类的实例…”是的。Sql也是@ZagglerSo,在这种情况下,我有标签。我应该复制/粘贴我为一个类使用的所有方法?@Miggs创建一个单独的类,将您的方法粘贴到其中,并使其共享
。然后您可以调用它:)建议层分离是一个高级主题。考虑添加一个具体的代码示例和/或相关文章的链接。当你返回一个字段时,我将使它成为一个函数而不是一个方法。这样你就可以在任何你想要的地方显示它,但要知道它给了我标签上的错误@扎格勒索,在这种情况下,我有标签。我应该复制/粘贴一个类的所有方法?@Miggs创建一个单独的类,将您的方法粘贴到其中,并使其共享。然后你可以称之为:)建议层分离是一个高级主题。考虑添加一个具体的代码示例和/或相关文章的链接。当你返回一个字段时,我将使它成为一个函数而不是一个方法。这样你就可以在任何你想要的地方显示它,但要知道它给了我标签上的错误@扎格勒