回 帖 发 新 帖 刷新版面

主题:再次请教单选按钮互斥问题

刚才在电脑上又做了一题,以控件数组形式编写程序:窗体中有一组单选按钮和一个文本框,单选按钮包括普通、粗体、斜体和粗斜体4种字形。文本框中的文字将按所选择的选项进行设置。我写的代码为:
Private Sub Form_Load()
  Text1.Text = "框架和按钮"
  Frame1.Caption = "字形"
  Option1(0).Caption = "普通"
  Option1(1).Caption = "粗体"
  Option1(2).Caption = "斜体"
  Option1(3).Caption = "粗斜体"
End Sub

Private Sub Option1_Click(Index As Integer)
  If Index = 0 Then
       Text1.FontBold = False
       Text1.FontItalic = False
  End If
  If Index = 1 Then Text1.FontBold = True
  If Index = 2 Then Text1.FontItalic = True
  If Index = 3 Then
        Text1.FontBold = True
        Text1.FontItalic = True
  End If
       
End Sub

问题1:大家请注意观察我上传的运行界面:居然可以同时选择两个单选按钮耶~~~
问题2:运行后,如果选中“斜体”则文字变成斜体效果,接着选中“粗体”文字本应该只变成粗体效果,但在机器上变成了即是斜体又是粗体。必须重新在代码中加else语句才行。可是同样的代码在其他的机器上都可以运行成功呀!
谁能告诉我,这是为什么?!
[em52][em6]

回复列表 (共2个回复)

沙发

在Option1_Click过程中首先把Text1的字体属性均设置为False,再判断Index。
最好不用If,而用Select Case,并且Index=0时不需要写代码。

板凳


哎呀,我搞清楚自己错在哪里了!
1.虽然做成了控件数组,可是数组元素没有全部放在框架内,有一两个仅仅是看上去象是放在框架上,其实没有。所以变成了“多选”了。
2.题目本身有问题。因为文字完全可以既是粗体又同时是斜体,也就是说:这题应该要求用复选框完成而它却要求用单选按钮了。
而单选按钮在界面上看上去有互斥效果其实真正要互斥还要靠写代码,所以这一题if语句得跟else才行。

这只是菜鸟我的理解,第1点肯定是这样的,因为改过来后就行了。而第2点不知行家高手们同意否?呵呵![em12]

我来回复

您尚未登录,请登录后再回复。点此登录或注册