大神们,求救VB.NET控件数组创建和使用

the_this_2301 2017-04-18 10:53:49
为什么第一段程序能用,第二段却不能用呢?我是初学者。。。

Public Class Form1

Dim i(1) As Label

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
i(0) = Label1
i(1) = Label2
i(0).Text = "123"
i(1).Text = ""
End Sub
End Class
-----------------------------------------------------------------------------------------------------------------
Public Class Form1

Dim i() As Label = {Label1, Label2}

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
i(0).Text = "123"
i(1).Text = ""
End Sub
End Class
...全文
378 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
秋天之落叶 2017-04-24
  • 打赏
  • 举报
回复
同意8#建议,加上 i = New Label() {Label1, Label2} 即可 vs2015通过 Public Class Form1 Dim i() As Label = {Label1, Label2} Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click i = New Label() {Label1, Label2} i(0).Text = "123" i(1).Text = "" End Sub End Class
mjzxlmg 2017-04-22
  • 打赏
  • 举报
回复
	Dim Label(1) As Label
        For i As Integer = 0 To 1
            Label(i) = New Label
            With Label(i)
		.Name = "Label" & i
                .Top = 20
                .Left = LngLeft
                .Height = 14
                .Width = 50
                .TextAlign = ContentAlignment.MiddleCenter
                .ForeColor = Color.OrangeRed
                .TabIndex = i
                .Text =  "Label" & i
                GroupBox1.Controls.Add(Label(i))
            End With
            LngLeft += 195
        Next
qxy1547722058 2017-04-22
  • 打赏
  • 举报
回复
话说VBnet支持控件数组吗。ԅ(¯ㅂ¯ԅ)
健者天行 2017-04-19
  • 打赏
  • 举报
回复
引用 3 楼 the_this_2301 的回复:
[quote=引用 1 楼 leo2003 的回复:] 这2句是给数组赋值,必须。 i(0) = Label1 i(1) = Label2
不能像第二段那样赋值吗? [/quote] 不好意思,我看漏了,第二段在定义时有赋值。 初始化赋值要定义为静态。 如:

        static Label lbl1;
        static Label lbl2;

        Label[] lbls = new Label[] { lbl1, lbl2 };
the_this_2301 2017-04-19
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
Dim i() As Label = {Label1, Label2} -> Private i() As Label = {Label1, Label2}
经过实测,用Private和用Dim一样,都是不能用
threenewbee 2017-04-19
  • 打赏
  • 举报
回复
Dim i() As Label = {Label1, Label2} -> Private i() As Label = {Label1, Label2}
健者天行 2017-04-19
  • 打赏
  • 举报
回复




  • 打赏
  • 举报
回复
引用 5 楼 the_this_2301 的回复:
[quote=引用 4 楼 caozhy 的回复:] Dim i() As Label = {Label1, Label2} -> Private i() As Label = {Label1, Label2}
经过实测,用Private和用Dim一样,都是不能用[/quote]
Dim i() As Label = {Label1, Label1}
这个代码大概是 vb.net 2012 版或者更高版本才支持的。你可以查一下相关语法的 msdn 文档,看看什么版本才开始支持。
the_this_2301 2017-04-18
  • 打赏
  • 举报
回复
引用 1 楼 leo2003 的回复:
这2句是给数组赋值,必须。 i(0) = Label1 i(1) = Label2
不能像第二段那样赋值吗?
the_this_2301 2017-04-18
  • 打赏
  • 举报
回复
不能想第二段那样赋值吗?
健者天行 2017-04-18
  • 打赏
  • 举报
回复
这2句是给数组赋值,必须。 i(0) = Label1 i(1) = Label2

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧