【问题标题】:How do you assign a global variable to a label in Visual Basic?如何在 Visual Basic 中将全局变量分配给标签?
【发布时间】:2018-05-29 23:02:00
【问题描述】:

我正在尝试在 Visual Basic 中创建一个需要使用全局变量的程序。分配全局变量的代码是;

Public Class G
    Public Shared Oil As Integer = 0
    Public Shared Myr As Integer = 0
    Public Shared Scrap As Integer = 0
    Public Shared Rotgrub As Integer = 0
    Public Shared Ratadrabic As Integer = 0
    Public Shared Remains As Integer = 0
Public Shared Cost As Integer = 0
End Class

我打开的下一个表单将某些全局变量设置为不同的值,就像这样;

Private Sub btnMemnarchMeatlovers_Click(sender As Object, e As EventArgs) Handles btnMemnarchMeatlovers.Click
    G.Myr = 2
    G.Rotgrub = 2
    G.Remains = 1
    G.Oil = 1
    Form3.Show()
End Sub

Form 3 是问题所在。我目前有按钮来更改变量,然后显示更改,就像这样;

Private Sub btnOilMinus_Click(sender As Object, e As EventArgs) Handles btnOilMinus.Click
    If G.Oil > 0 Then
        G.Oil = G.Oil - 1
    End If
    lblOilValue.Text = G.Oil
End Sub

Private Sub btnOilPlus_Click(sender As Object, e As EventArgs) Handles btnOilPlus.Click
    If G.Oil < 2 Then
        G.Oil = G.Oil + 1
    End If
    lblOilValue.Text = G.Oil
End Sub

变量发生变化,如果变量是 2,当按下 btnOilMinus_Click 时变量将显示为 1,但在按下按钮之前我无法显示变化。我试过了;

Public Class Form3
    lblOilValue.Text = G.Oil
    lblMyrValue.Text = G.Myr
    lblScrapValue.Text = G.Scrap
    lblRotgrubValue.Text = G.Rotgrub
    lblRatadrabicValue.Text = G.Ratadrabic
    lblRemainsValue.Text = G.Remains

但是 G.Oil 和其他中的 G 没有像其他代码在编写时那样突出显示,并且 lblOilValue.Text 和其他显示错误“Declaration Expected”。

我有 Visual Studio Community Edition 2017。

【问题讨论】:

  • 这些是语句,不是声明,它们只能出现在Sub 或Function 中。它们属于 Sub New,在 InitializeComponent() 调用之后。
  • 具体是如何工作的?我还没试过。
  • 是时候尝试一下了,如果不知道构造函数是什么样的,就无法编写有效的 vb.net 代码。键入“Public Sub New”,然后按 Enter。沙赞。
  • 如果您将此设置为答案,我很乐意将其标记为正确。它奏效了。

标签: vb.net


【解决方案1】:

添加一个名为 GlobalVariables 或任何你喜欢的新模块。

剪切粘贴G 声明代码从您的 form1 到 ModuleEnd Module 行之间的模块文件中.. 这但是剪切它来自 Form1

Public Class G
    Public Shared Oil As Integer = 0
    Public Shared Myr As Integer = 0
    Public Shared Scrap As Integer = 0
    Public Shared Rotgrub As Integer = 0
    Public Shared Ratadrabic As Integer = 0
    Public Shared Remains As Integer = 0
Public Shared Cost As Integer = 0
End Class

【讨论】:

  • 想知道为什么是一个模块。我有一个看起来相似的类,我在我的应用程序中使用它没有问题,它不在模块中。请详细说明一下好吗?
猜你喜欢
  • 2017-06-25
  • 2014-12-03
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 2018-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多