以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于动态创建控件数组问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188676)

--  作者:迷途小童
--  发布时间:2023/10/10 16:14:00
--  关于动态创建控件数组问题
我想动态生成数量不固定的控件,请大神帮看看:
Dim rb_A() As  WinForm.RadioButton
Dim i As Integer = 1
Dim h As Integer = 1
Dim s As String = "s"
Do While i < =8
   rb_A(i) =  e.Form.CreateControl("rb_" & i , ControlTypeEnum.RadioButton)      
    e.Form.AddControl(rb_A(i))    
    h = h + e.Form.Controls("rb_" & i).height
    rb_A(i).Text = i
    rb_A(i).Left = 10
    rb_A(i).Top = h + 1
    i = i + 1   
Loop


[此贴子已经被作者于2023/10/10 16:16:18编辑过]

--  作者:有点蓝
--  发布时间:2023/10/10 16:30:00
--  
有啥问题?麻烦说明一下
--  作者:迷途小童
--  发布时间:2023/10/10 16:36:00
--  
提示这个问题
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
Object reference not set to an instance of an object.


--  作者:有点蓝
--  发布时间:2023/10/10 16:39:00
--  
Dim rb_A() As  WinForm.RadioButton
改为
Dim rb_A(7) As  WinForm.RadioButton

--  作者:迷途小童
--  发布时间:2023/10/10 16:40:00
--  
麻烦你帮我看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:迷途小童
--  发布时间:2023/10/10 16:41:00
--  
你那个7是不固定的
--  作者:有点蓝
--  发布时间:2023/10/10 16:42:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip


--  作者:迷途小童
--  发布时间:2023/10/10 16:48:00
--  
我根据不同的条件生成不同的控件,这样如何处理
Dim s As String = "s"
If s = "s" Then
    Dim rb_A(num) As  WinForm.RadioButton
Else
    Dim rb_A(num) As  WinForm.CheckBox
End If


--  作者:有点蓝
--  发布时间:2023/10/10 16:54:00
--  
改为使用集合,不要使用数组。

另外这个数组如果不会传给外部或者作为全局变量使用,完全没有必要使用数组,在循环里使用普通变量直接添加即可