项目实战(五)—动态添加控件

         接到项目时发现有有些控件是动态的,不同的仓有不同设置。仓中每层都有不同的报警温设置,其实用户并不需要这么多报警温,后来我们小组也讨论时把这部分控件都设为静态的,这样就特别简单了,只需要用到一个事务就解决了。当告诉米老师我们的想法时,米老师的第一反应就是我们在偷懒。确实如果我们觉得实现没什么问题,肯定就不会想着把他设为静态的。现在想想,有这么好的机会去锻炼自己,要好好把握。我们需要做的是把每个环节做的最好,遇到问题解决问题,这样才能提高!


一、问题


        根据层数动态创建一批有规律的控件


        3层的仓房:


        4层的仓房:


二、技术


        1、动态创建控件,把握好坐标(相对位置的设置)

        2、将所创建的控件放入到Arraylist控件中显示出来


三、具体实现


         <span style="font-size:18px;">   Dim plAlarm As New Panel               '动态添加Panel容器用来存放动态添加的控件
         plAlarm.AutoScroll = True              '设置Panel容器的滚动条为自动添加


            For i = 1 To j                      '用循环来实现一层层添加,i是初始变量,j为层数
                Dim lblF As New Label           'lblF为每行的第一个标签
                Dim lblS As New Label           'lblS为每行的第二个标签
                Dim txtF As New TextBox         'txtF为每行的第一个文本框
                Dim txtS As New TextBox         'txtS为每行的第二个文本框


                lblF.Text = "层" & i & "高报警" 'i层的第一个标签
                lblS.Text = "层" & i & "低报警" 'i层的第二个标签

                txtF.Tag = "层" & i & "高报警"  'i层的第一个文本框
                txtS.Tag = "层" & i & "低报警"  'i层的第二个文本框

                '设置Panel的坐标
                
                 plAlarm.Location = New System.Drawing.Point(412, 8)

                '设置Panel的大小
                
                 plAlarm.Size = New System.Drawing.Size(387, 150)

                '设置第i层的第一个和第二个标签
               
                lblF.Location = New System.Drawing.Point(0, 1 + i * 28)
                lblF.Size = New System.Drawing.Size(80, 14)
                lblS.Location = New System.Drawing.Point(200, 1 + i * 28)
                lblS.Size = New System.Drawing.Size(80, 14)

               
                '设置第i层的第一个和第二个文本框

                txtF.Location = New System.Drawing.Point(85, 1 + i * 28)
                txtF.Size = New System.Drawing.Size(85, 23)
                txtS.Location = New System.Drawing.Point(285, 1 + i * 28)
                txtS.Size = New System.Drawing.Size(82, 23)

                
                plAlarm.Controls.Add(lblF)                  '将第一个标签添加到容器中
                plAlarm.Controls.Add(lblS)                  '将第二个标签添加到容器中
                plAlarm.Controls.Add(txtF)                  '将第一个文本框添加到容器中
                plAlarm.Controls.Add(txtS)                  '将第二个文本框添加到容器中

                
                txtLIst.Add(txtF)                           '将每层第一个文本框放入到集合
                txtLIst.Add(txtS)                           '将每层第二个文本框放入到集合
          
            Next

       'Me.Controls.Add(plAlarm)
       gbSetStorageAlarm.Controls.Add(plAlarm)              '将容器添加到groupbox中</span>


评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值