Foxtable(狐表)用户栏目专家坐堂 → 如何动态设定RadioButton文本的宽度啊


  共有3658人关注过本帖树形打印复制链接

主题:如何动态设定RadioButton文本的宽度啊

帅哥哟,离线,有人找我吗?
迷途小童
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
如何动态设定RadioButton文本的宽度啊  发帖心情 Post By:2019/12/7 15:16:00 [显示全部帖子]

如题,如何在窗口中动态设定RadioButton文本显示的宽度啊,请教各位专家

 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/7 15:43:00 [显示全部帖子]

不是这个,我想表达的意思是,rb.text内容是动态的,如何把text的内容显示全了

 


 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/7 15:44:00 [显示全部帖子]

他的宽度不定


 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/7 16:15:00 [显示全部帖子]


        '生成题目
        dr = DataTables("题库").Find("[序号] = '" & pd.Name & "'")
        'str =
        Forms(Arg0).Controls("Label1").Text = StrToWide("(") & pd.Text &  StrToWide(")") & dr("题目内容") & vbcrlf & vbcrlf '显示题目内容
        Forms(Arg0).Controls("Label1").Width = Forms(Arg0).Controls("GroupBox1").Width - 100
       
        Dim pbx As WinForm.PictureBox = Forms(Arg0).Controls("PictureBox1")
        Dim h As  Integer '设定控件高度
        Dim rb_A As WinForm.RadioButton
        Dim rb_B As WinForm.RadioButton
        Dim rb_C As WinForm.RadioButton
        Dim rb_D As WinForm.RadioButton
        Forms("窗口12").RemoveControl("rb_A")
        Forms("窗口12").RemoveControl("rb_B")
        Forms("窗口12").RemoveControl("rb_C")
        Forms("窗口12").RemoveControl("rb_D")
        If dr.IsNull("图片") Then
            pbx.Visible = False
            h = Forms(Arg0).Controls("Label1").Height + Forms(Arg0).Controls("Label1").Top 
        Else
            pbx.Visible = True
            pbx.Top = Forms(Arg0).Controls("Label1").Height + Forms(Arg0).Controls("Label1").Top  '设定图片位置
            pbx.Image = GetImage(dr("图片")) '显示图片
            h = pbx.Height + pbx.Top
        End If
        '创建选项A
        rb_A =  Forms("窗口12").CreateControl("rb_A", ControlTypeEnum.RadioButton)
        rb_A.Text = vbcrlf & "A." & dr("选项_A")
        rb_A.Left = Forms(Arg0).Controls("Label1").Left
        rb_A.Top = h
        rb_A.TextAlign  = ContentAlignment.MiddleLeft
        rb_A.Width = Forms(Arg0).Controls("GroupBox1").Width
       
        Forms("窗口12").Controls("GroupBox1").AddControl(rb_A)

        '创建选项B
        h = h + rb_A.Height
        rb_B = Forms("窗口12").CreateControl("rb_B", ControlTypeEnum.RadioButton)
        rb_B.Top = h
        rb_B.Left = Forms(Arg0).Controls("Label1").Left
        rb_B.Text = vbcrlf & "B." & dr("选项_B")
        rb_B.Width = Forms(Arg0).Controls("GroupBox1").Width
        rb_B.TextAlign = ContentAlignment.MiddleLeft
        Forms("窗口12").Controls("GroupBox1").AddControl(rb_B)
       
        '创建选项C
        h = h + rb_B.Height
        rb_C = Forms("窗口12").CreateControl("rb_C", ControlTypeEnum.RadioButton)
        rb_C.Top = h
        rb_C.Left = Forms(Arg0).Controls("Label1").Left
        rb_C.Text = vbcrlf & "B." & dr("选项_C")
        rb_C.Width = Forms(Arg0).Controls("GroupBox1").Width
        rb_C.TextAlign = ContentAlignment.MiddleLeft
        Forms("窗口12").Controls("GroupBox1").AddControl(rb_C)
       
        '创建选项D
        h = h + rb_C.Height
        rb_D = Forms("窗口12").CreateControl("rb_D", ControlTypeEnum.RadioButton)
        rb_D.Top = h
        rb_D.Left = Forms(Arg0).Controls("Label1").Left
        rb_D.Text = vbcrlf & "D." & dr("选项_D")
        rb_D.Width = Forms(Arg0).Controls("GroupBox1").Width
        rb_D.TextAlign = ContentAlignment.MiddleLeft
        Forms("窗口12").Controls("GroupBox1").AddControl(rb_D)

 

我的选项内容是变动的,RadioButton的宽度根据选项内容自行调整宽度,使内容显示完全,另外也请老师帮看一下,我设定了文本对齐方式,但一直对不齐,我把文件上传上来了

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:考试系统.table


 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/7 17:18:00 [显示全部帖子]

谢谢蓝爸,再请教一下的老师,Label1标签不设定宽度显示内容太长,设定宽度后高度又不随显示内容自动调整这个又怎么解决呢,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/7 17:49:00 [显示全部帖子]

老师,我测试了,还是行,没有变化的图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/9 10:23:00 [显示全部帖子]

已解决,谢谢!另外还要再请教个问题:在随机抽取记录时,如果抽到遇到某个单元格的内容上下两行内容相同时,要把这两行同时抽到一起并且这两行上下顺序不打乱。举个例子:在题库中有100条记录,其中10,11其实是一个题目有两个问题,在随机抽取题目时如果抽到10,就要同时把11也要抽取并且上下顺序不打乱,同理如抽到11,也要把10同时抽到。谢谢


图片点击可在新窗口打开查看此主题相关图片如下:无标题.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/12/9 10:23:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/9 11:27:00 [显示全部帖子]

Dim rb_A() As WinForm.RadioButton
Dim rb_B As WinForm.RadioButton
Dim i As Integer = 1
Dim h As Integer = 1
Dim s As String = "s"
Do While i < 4
        rb_A(i) =  e.Form.CreateControl("s" & i , ControlTypeEnum.RadioButton)
        i = i + 1
       h = h + e.Form.Controls("rb_" & i).height 
       rb_A(i).Top = h + 1
        e.Form.AddControl(rb_A(i))
Loop

我动态添加数据控件时报错,Object reference not set to an instance of an object.是不能动态添加数组控件吗


 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/10 12:24:00 [显示全部帖子]

 老师帮我看一下面代码是逻辑问题还是什么,在没有图处的时候正常的,有图片就不正常的      

 

 '有图片的对题目中图处进行处理
        Dim pbx As WinForm.PictureBox = Forms("题目").Controls("PictureBox1")
        Dim h As  Integer '设定控件高度
        If dr.IsNull("图片") Then
            pbx.Visible = False
            h = Forms("题目").Controls("Label1").Height + Forms("题目").Controls("Label1").Top
           ' msgbox(h & "---1")
        Else
            pbx.Visible = True
            pbx.Top = Forms("题目").Controls("Label1").Height + Forms("题目").Controls("Label1").Top  '设定图片位置
            pbx.Image = GetImage(dr("图片")) '显示图片
            h = pbx.Height + pbx.Top
           ' msgbox(h & "---2")
        End If
         Forms("题目").Controls("Label2").Text = h
            
        '生成选项
        Dim rb_Number(8) As  WinForm.RadioButton
        Dim lbl(8) As WinForm.Label
        Dim Number_Q() As String ={"A","B","C","D"} '选项数组
        Dim i As Integer = 1
        Dim j As Integer = 0 '设定选项
        Do While i <= 4
            Forms("题目").RemoveControl("rb_" & i & "_" &  Number_Q(j))           
            i = i + 1
            j = j + 1
        Loop
        Forms("题目").RemoveControl("lbl_1" )
       ' Forms("题目").RemoveControl("lbl_5" )
       
         '设定选项目的高度
        Forms("题目").Controls("GroupBox2").Width =  Forms("题目").Controls("GroupBox1").Width - 100       
        Forms("题目").Controls("GroupBox2").Top = h - 5
        Forms("题目").Controls("GroupBox2").Left = Forms("题目").Controls("Label1").Left - 10
        Forms("题目").Controls("Label2").Text     
        h =  Forms("题目").Controls("GroupBox2").Top
        '创建控件
        i = 1
        j = 0
        Do While i <= 4                               
                If i = 1 Then
                    '设定组属性                   
                    lbl(i) = Forms("题目").CreateControl("lbl_" & i , ControlTypeEnum.Label)
                    Forms("题目").Controls("GroupBox2").AddControl(lbl(i))
                    '设定属性
                    lbl(i).Text = StrToWide("(" & Vars("Question_No") & ")")
                    lbl(i).Left = Forms("题目").Controls("GroupBox2").Left - 15
                    lbl(i).Top =  Forms("题目").Controls("GroupBox2").Top - 20
                    lbl(i).AutoSize = True
                   ' msgbox(lbl(i).Top & "----" & Forms("题目").Controls("GroupBox2").Top )
                    '创建选项
                    rb_Number(i) =  Forms("题目").CreateControl("rb_" & i & "_" &  Number_Q(j) , ControlTypeEnum.RadioButton)
                    Forms("题目").Controls("GroupBox2").AddControl(rb_Number(i))
                    '设定选项属性
                    rb_Number(i).Text = dr("选项_1组_" &  Number_Q(j)) & vbcrlf
                    rb_Number(i).Left = lbl(i).Left + lbl(i).Width
                    rb_Number(i).Top = lbl(i).Top - 5
                    rb_Number(i).Width = Forms("题目").Controls("GroupBox2").Width
                    Vars("Question_No") = Vars("Question_No") + 1
                    'msgbox(i & "---1")
                Else
                    rb_Number(i) =  Forms("题目").CreateControl("rb_" & i & "_" &  Number_Q(j) , ControlTypeEnum.RadioButton)
                    Forms("题目").Controls("GroupBox2").AddControl(rb_Number(i))
                    rb_Number(i).Text = dr("选项_1组_" &  Number_Q(j)) & vbcrlf
                    rb_Number(i).Left = rb_Number(i-1).Left
                    rb_Number(i).Top = rb_Number(i-1).Top + rb_Number(i-1).Height
                    rb_Number(i).Width = Forms("题目").Controls("GroupBox2").Width
                    'msgbox(i & "---2")
                End If           
            h = h + rb_Number(i).Height
            Forms("题目").Controls("Label2").Text = Forms("题目").Controls("Label2").Text  & "," & h
          
            i = i + 1
            j = j + 1
        Loop
        Forms("题目").Controls("GroupBox2").Height = h - rb_Number(4).Height

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
迷途小童
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:88 积分:613 威望:0 精华:0 注册:2018/6/13 21:37:00
  发帖心情 Post By:2019/12/10 14:04:00 [显示全部帖子]

我的组件是控件是变动的,另外如何把组件GroupBox边框不可件呢?


 回到顶部
总数 13 1 2 下一页