Vb.net 在加载时声明全局(或公共?)变量
整个夏天我都在努力提高VisualBasic的流利程度,所以我仍然在为下一节VisualBasic课做准备。我的老师检查了变量,但仅限于局部范围 我到处都找过了,但找不到我真正需要的东西。我正在制作一个闹钟,我有这个代码来填充分钟数组和小时数组Vb.net 在加载时声明全局(或公共?)变量,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,整个夏天我都在努力提高VisualBasic的流利程度,所以我仍然在为下一节VisualBasic课做准备。我的老师检查了变量,但仅限于局部范围 我到处都找过了,但找不到我真正需要的东西。我正在制作一个闹钟,我有这个代码来填充分钟数组和小时数组 Public Class Form1 Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Public Class Form1
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.clockTimer.Interval = 1 * 1000
Me.clockTimer.Enabled = True
Dim hourArray(0 To 11) As String
For i As Integer = 1 To 12
If i.ToString.Length < 2 Then
hourArray(i - 1) = "0" & i
Else
hourArray(i - 1) = i
End If
Next
Dim minuteArray(0 To 59) As String
For i As Integer = 0 To 59
If i.ToString.Length < 2 Then
minuteArray(i) = "0" & i
Else
minuteArray(i) = i
End If
Next
hourLabel.Text = hourArray(0)
minuteLabel.Text = minuteArray(0)
End Sub
公共类表单1
Public Sub Form1_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
Me.clockTimer.Interval=1*1000
Me.clockTimer.Enabled=真
昏暗的hourArray(0到11)作为字符串
对于i,整数=1到12
如果i.ToString.Length<2,则
hourArray(i-1)=“0”和i
其他的
hourArray(i-1)=i
如果结束
下一个
以字符串形式显示的暗细节(0到59)
对于i,作为整数=0到59
如果i.ToString.Length<2,则
分钟数(i)=“0”和i
其他的
分钟数(i)=i
如果结束
下一个
hourLabel.Text=hourArray(0)
minuteLabel.Text=minuteArray(0)
端接头
(注意:添加“0”只是为了让时钟显示的是“01”而不是“1”。)
现在,我在表单加载(这个项目中只有一个表单)上实现了这一点,但它没有全局或公共范围。我希望能够在程序的后面访问hourArray
和minuteArray
,但在表单加载时仍然可以这样做。我该怎么做?另外,我要描述的变量范围是什么?(即整个表格的范围)
谢谢。你没有告诉我你的班级结构。无论如何。将变量hourArray和minuteArray声明为public。在类的开头声明它们,并在form load方法中初始化它们 编辑添加了代码示例
Public Class Form1
Dim hourArray(0 To 11) As String 'Declaration here
Dim minuteArray(0 To 59) As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 1 To 12
If i.ToString.Length < 2 Then
hourArray(i - 1) = "0" & i
Else
hourArray(i - 1) = i
End If
Next
For i As Integer = 0 To 59
If i.ToString.Length < 2 Then
minuteArray(i) = "0" & i
Else
minuteArray(i) = i
End If
Next
End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
hourArray(1) = "x"
minuteArray(1) = "y"
End Sub
End Class
公共类表单1
Dim hourArray(0到11)作为字符串“声明”
以字符串形式显示的暗细节(0到59)
私有子表单1_Load(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
对于i,整数=1到12
如果i.ToString.Length<2,则
hourArray(i-1)=“0”和i
其他的
hourArray(i-1)=i
如果结束
下一个
对于i,作为整数=0到59
如果i.ToString.Length<2,则
分钟数(i)=“0”和i
其他的
分钟数(i)=i
如果结束
下一个
端接头
私有子RadioButton1\u CheckedChanged(ByVal发送方作为System.Object,ByVal e作为System.EventArgs)处理RadioButton1.CheckedChanged
hourArray(1)=“x”
分钟数(1)=“y”
端接头
末级
希望能有帮助 既然你学会了,我就告诉你把它们放在哪里 但是以后,您应该删除数组,直接花时间,在需要时用0填充它,所有这些都不需要数组 像这样把这些放在班级和小组之间
Public Class Form1
private hourArray(0 To 11) As String
private minuteArray(0 To 59) As String
Public Sub Form1_Loa
Public Class Form1
Dim hourArray(0 To 11) As String 'These variables are private to your Class
Dim minuteArray(0 To 59) As String
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.clockTimer.Interval = 1 * 1000
Me.clockTimer.Enabled = True
For i As Integer = 1 To 12
If i.ToString.Length < 2 Then
hourArray(i - 1) = "0" & i
Else
hourArray(i - 1) = i
End If
Next
For i As Integer = 0 To 59
If i.ToString.Length < 2 Then
minuteArray(i) = "0" & i
Else
minuteArray(i) = i
End If
Next
hourLabel.Text = hourArray(0)
minuteLabel.Text = minuteArray(0)
End Sub
如果要在外部使用这些数组,应该创建一个公共属性,如
Public readonly Property hour As String()
Get
return hourArray
End Get
End Property
你在描述
从以上链接:
为方便起见,单术语模块级别同样适用于模块、类和结构。您可以通过将声明语句放置在任何过程或块之外,但在模块、类或结构中,来声明此级别的元素
在模块级别进行声明时,选择的访问级别决定了范围。包含模块、类或结构的命名空间也会影响作用域
为其声明私有(Visual Basic)访问级别的元素可用于该模块中的每个过程,但不可用于不同模块中的任何代码。如果不使用任何访问级别关键字,则模块级别的Dim语句默认为Private。但是,通过在Dim语句中使用Private关键字,可以使范围和访问级别更加明显
所以在你的情况下,我会这样做
Public Class Form1
private hourArray(0 To 11) As String
private minuteArray(0 To 59) As String
Public Sub Form1_Loa
Public Class Form1
Dim hourArray(0 To 11) As String 'These variables are private to your Class
Dim minuteArray(0 To 59) As String
Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.clockTimer.Interval = 1 * 1000
Me.clockTimer.Enabled = True
For i As Integer = 1 To 12
If i.ToString.Length < 2 Then
hourArray(i - 1) = "0" & i
Else
hourArray(i - 1) = i
End If
Next
For i As Integer = 0 To 59
If i.ToString.Length < 2 Then
minuteArray(i) = "0" & i
Else
minuteArray(i) = i
End If
Next
hourLabel.Text = hourArray(0)
minuteLabel.Text = minuteArray(0)
End Sub
公共类表单1
Dim hourArray(0到11)作为字符串“这些变量对您的类是私有的”
以字符串形式显示的暗细节(0到59)
Public Sub Form1_Load(ByVal sender作为System.Object,ByVal e作为System.EventArgs)处理MyBase.Load
Me.clockTimer.Interval=1*1000
Me.clockTimer.Enabled=真
对于i,整数=1到12
如果i.ToString.Length<2,则
hourArray(i-1)=“0”和i
其他的
hourArray(i-1)=i
如果结束
下一个
对于i,作为整数=0到59
如果i.ToString.Length<2,则
分钟数(i)=“0”和i
其他的
分钟数(i)=i
如果结束
下一个
hourLabel.Text=hourArray(0)
minuteLabel.Text=minuteArray(0)
端接头
进展顺利。我建议您进一步了解VB.NET“访问类型”。这会让你的基本面变得清晰。你可以通过这个快乐的编码。