您的位置:程序门 -> .net技术 -> vb.net



有关控件组的问题!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


有关控件组的问题!
发表于:2007-05-18 13:00:18 楼主
private   timer_baojing(3)   as   system.timers.timer
private   lblad(3)   as   label
我就是想把这两个控件一一对应起来
在timer的事件里操作label,  

        private   sub   form1_load(byval   sender   as   object,   byval   e   as   system.eventargs)   handles   me.load
 
                for   i   =   0   to   3
                        lblad(i)   =   new   label

                        lblad(i).textalign   =   contentalignment.middlecenter
                        lblad(i).top   =   100             '随便给的位置
                        lblad(i).left   =   100           '随便给的位置
                        lblad(i).visible   =   true
                        lblad(i).autosize   =   false              
                        lblad(i).name   =   i              
                        lblad(i).text   =   i
                        lblad(i).show()

                        me.controls.add(lblad(i))
                next
                '**********************************************************
               
                for   i   =   0   to   2
                        timer_baojing(i)   =   new   system.timers.timer
                        timer_baojing(i).autoreset   =   true

                        addhandler   timer_baojing(i).elapsed,   addressof   baojing_timer

                        timer_baojing(i).interval   =   1000   *   i   +   3000
                        timer_baojing(i).enabled   =   true
                next
        end   sub

        private   sub   baojing_timer(byval   sender   as   object,   byval   e   as   system.timers.elapsedeventargs)

                for   i   =   0   to   2
                        if   sender.equals(timer_baojing(i))   then
                                a   =   i

                                lblad(i).backcolor   =   color.blue     '到这里就出错了,线程之间的问题

                        end   if
                next

        end   sub
发表于:2007-05-18 13:05:271楼 得分:0
请问怎么在这个timer的事件里控制别的控件!???
发表于:2007-05-18 13:25:082楼 得分:0
public   class   form1

        private   timer_baojing(3)   as   system.timers.timer
        private   lblad(3)   as   label
        private   i   as   integer

        private   sub   form1_load(byval   sender   as   object,   byval   e   as   system.eventargs)   handles   me.load

                for   i   =   0   to   3
                        lblad(i)   =   new   label

                        lblad(i).textalign   =   contentalignment.middlecenter
                        lblad(i).top   =   100   *   i   '随便给的位置
                        lblad(i).left   =   100   '随便给的位置
                        lblad(i).visible   =   true
                        lblad(i).autosize   =   false
                        lblad(i).name   =   i
                        lblad(i).text   =   i
                        lblad(i).show()

                        me.controls.add(lblad(i))
                next
                '**********************************************************

                for   i   =   0   to   2
                        timer_baojing(i)   =   new   system.timers.timer
                        timer_baojing(i).autoreset   =   true

                        addhandler   timer_baojing(i).elapsed,   addressof   baojing_timer

                        timer_baojing(i).interval   =   1000   *   i   +   1000
                        timer_baojing(i).enabled   =   true
                next
        end   sub

        private   sub   baojing_timer(byval   sender   as   object,   byval   e   as   system.timers.elapsedeventargs)

                for   i   =   0   to   2
                        if   sender.equals(timer_baojing(i))   then
                                'a   =   i
                                lblad(i).backcolor   =   color.blue   '到这里就出错了,线程之间的问题
                        end   if
                next

        end   sub

end   class

代码没什么大问题,定义一下变量i,屏蔽无用代码a=i后   可以正常运行啊。
发表于:2007-05-18 13:30:323楼 得分:0
如果有线程之间的问题,可以使用委托的方式,如:

public   class   form1

        private   timer_baojing(3)   as   system.timers.timer
        private   lblad(3)   as   label
        private   i   as   integer

        private   sub   form1_load(byval   sender   as   object,   byval   e   as   system.eventargs)   handles   me.load

                for   i   =   0   to   3
                        lblad(i)   =   new   label

                        lblad(i).textalign   =   contentalignment.middlecenter
                        lblad(i).top   =   100   *   i   '随便给的位置
                        lblad(i).left   =   100   '随便给的位置
                        lblad(i).visible   =   true
                        lblad(i).autosize   =   false
                        lblad(i).name   =   i
                        lblad(i).text   =   i
                        lblad(i).show()

                        me.controls.add(lblad(i))
                next
                '**********************************************************

                for   i   =   0   to   2
                        timer_baojing(i)   =   new   system.timers.timer
                        timer_baojing(i).autoreset   =   true

                        addhandler   timer_baojing(i).elapsed,   addressof   baojing_timer

                        timer_baojing(i).interval   =   1000   *   i   +   3000
                        timer_baojing(i).enabled   =   true
                next
        end   sub

        private   sub   baojing_timer(byval   sender   as   object,   byval   e   as   system.timers.elapsedeventargs)

                for   i   =   0   to   2
                        if   sender.equals(timer_baojing(i))   then
                                'a   =   i
                                'lblad(i).backcolor   =   color.blue   '到这里就出错了,线程之间的问题
                                me.invoke(new   mysub(addressof   changebackcolor),   i)   '使用委托的方法
                        end   if
                next

        end   sub

        private   delegate   sub   mysub(byval   i   as   integer)

        private   sub   changebackcolor(byval   i   as   integer)
                lblad(i).backcolor   =   color.blue
        end   sub

end   class
发表于:2007-05-18 13:50:304楼 得分:0
用select   case     sender.tabindex     end   select   这样的选择结构


快速检索

最新资讯
热门点击