| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1374 人关注过本帖
标题:VB6和NET 写法区别
只看楼主 加入收藏
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:3 
VB6和NET 写法区别
程序代码:
            Form1.Label1.BackColor = Color.LimeGreen
            Form1.Label2.BackColor = Color.LimeGreen
            Form1.Label3.BackColor = Color.LimeGreen
            Form1.Label4.BackColor = Color.LimeGreen
            Form1.Label5.BackColor = Color.LimeGreen
            Form1.Label6.BackColor = Color.LimeGreen
            Form1.Label7.BackColor = Color.LimeGreen
            Form1.Label8.BackColor = Color.LimeGreen
            Form1.Label9.BackColor = Color.LimeGreen
            Form1.Label10.BackColor = Color.LimeGreen
            Form1.Label11.BackColor = Color.LimeGreen
            Form1.Label12.BackColor = Color.LimeGreen
            Form1.Label13.BackColor = Color.LimeGreen
            Form1.Label14.BackColor = Color.LimeGreen

如何可以变得简单?VB可以控件组,但NET我不太懂,求指点!谢谢
         For i As Integer = 1 To 14
            Form1.(& "Label" & i).backcolor = Color.LimeGreen
         Next
2016-06-15 11:47
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:20 
其实也是可以定义控件数组的,不过需要对控件数组的事件进行注册
下面是一段例子(我的窗口代码较复杂,改成较简单的,改动可能会导致有一些小bug)
程序代码:
Public Class Form1

 Dim TxtFld() As TextBox

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  ……
    For i = 0 To 10
     TxtFld(i) = New TextBox
     Form1.Controls.Add(TxtFld(i)) '动态添加Textbox
     TxtFld(i).Visible = True
     TxtFld(i).Left = 160
     TxtFld(i).Top = txttop + i * 30
     TxtFld(i).ReadOnly = True
     TxtFld(i).Width = 250
     AddHandler TxtFld(i).Click, AddressOf TxtFld_Click '注册txtfld控件数组的TextChanged事件 ,目标函数TxtFld_Click 
  Next
  End Sub
……
  Private Sub TxtFld_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If Not TypeOf sender Is TextBox Then Exit Sub   ’sender是TextBox 才执行
        For i = 0 To UBound(TxtFld)    '遍历控件数组,找到Sender对应的TextBox ——这个方法比较笨,可能有更好的方法
            If sender.Equals(TxtFld(i)) And InStr(LableFld(i).Text, "开始时间") > 0 And TxtFld(i).ReadOnly = False Then
               '标签为"开始时间"对应的TextBox 被点击事件的代码
            End If
        Next
    End Sub
End Class
2016-06-15 17:12
xiangyue0510
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:86
帖 子:938
专家分:5244
注 册:2015-8-10
收藏
得分:0 
另外还可以直接遍历控件,
程序代码:
For Each obj In Me.Controls
If TypeOf obj Is Label Then
  obj.backcolor = Color.LimeGreen
End If
Next


2016-06-15 17:20
yuk_yu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:334
专家分:134
注 册:2009-3-16
收藏
得分:0 
回复 3楼 xiangyue0510
谢谢版主,我测试试看!!再次感谢
2016-06-15 17:28
快速回复:VB6和NET 写法区别
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022675 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved