类模块代码
Option Explicit
Private WithEvents cFrame As MSForms.Frame
Private WithEvents cOption As MSForms.OptionButton
Public Sub Attach(f As MSForms.Frame, p As MSForms.OptionButton)
Set cFrame = f
Set cOption = p
End Sub
Private Sub cOption_Click()
cFrame.Tag = cOption.Caption
End Sub
窗体代码
Option Explicit
Dim cls() As New 类1
Private Sub TextBox100_Change()
Dim Mystr As String
Mystr = Frame1.Tag & Frame2.Tag & Frame3.Tag
TextBox100.Text = Mystr
Select Case Mystr
Case "TxN0M0"
TextBox200.Text = "隐匿性癌(AJCC第8版)"
Case "TisN0M0"
TextBox200.Text = "0期(AJCC第8版)"
Case "T1a(mi)N0M0"
TextBox200.Text = "IA1期(AJCC第8版)"
Case "T1aN0M0"
TextBox200.Text = "IA1期(AJCC第8版)"
Case "T1aN1M0"
TextBox200.Text = "IIB期(AJCC第8版)"
Case "T1aN2M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T1aN3M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T1bN0M0"
TextBox200.Text = "IA2期(AJCC第8版)"
Case "T1bN1M0"
TextBox200.Text = "IIB期(AJCC第8版)"
Case "T1bN2M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T1bN3M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T1cN0M0"
TextBox200.Text = "IA3期(AJCC第8版)"
Case "T1cN1M0"
TextBox200.Text = "IIB期(AJCC第8版)"
Case "T1cN2M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T1cN3M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T2aN0M0"
TextBox200.Text = "IB期(AJCC第8版)"
Case "T2aN1M0"
TextBox200.Text = "IIB期(AJCC第8版)"
Case "T2aN2M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T2aN3M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T2bN0M0"
TextBox200.Text = "IIA期(AJCC第8版)"
Case "T2bN1M0"
TextBox200.Text = "IIB期(AJCC第8版)"
Case "T2bN2M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T2bN3M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T3N0M0"
TextBox200.Text = "IIB期(AJCC第8版)"
Case "T3N1M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T3N2M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T3N3M0"
TextBox200.Text = "IIIC期(AJCC第8版)"
Case "T4N0M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T4N1M0"
TextBox200.Text = "IIIA期(AJCC第8版)"
Case "T4N2M0"
TextBox200.Text = "IIIB期(AJCC第8版)"
Case "T4N3M0"
TextBox200.Text = "IIIC期(AJCC第8版)"
Case Else
TextBox200.Text = "?"
End Select
Dim Mystr2 As String
Mystr2 = Frame3.Tag
TextBox100.Text = Frame1.Tag & Frame2.Tag & Mystr2
Select Case Mystr2
Case "M1a"
TextBox200.Text = "IVA期(AJCC第8版)"
Case "M1b"
TextBox200.Text = "IVA期(AJCC第8版)"
Case "M1c"
TextBox200.Text = "IVB期(AJCC第8版)"
End Select
End Sub
Private Sub UserForm1_Initialize()
Dim ctl As Control, c As Control, N%
For Each ctl In Me.Controls
If TypeName(ctl) = "Frame" Then
For Each c In ctl.Controls
If TypeName(c) = "OptionButton" Then
N = N + 1: ReDim Preserve cls(1 To N)
cls(N).Attach ctl, c
End If
Next
End If
Next
End Sub
Private Sub OptionButton1_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton10_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton11_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton12_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton13_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton14_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton15_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton16_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton17_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton18_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton19_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton2_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton20_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton3_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton4_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton5_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton6_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton7_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton8_AfterUpdate()
Call TextBox100_Change
End Sub
Private Sub OptionButton9_AfterUpdate()
Call TextBox100_Change
End Sub
以上代码在VBA中运行正常,在VB6.0中运行以上代码,OptionButton不能赋值TextBox100,代码需如何修改?
TextBox100_Change?
TextBox100_Changed吧
另外,在TextBox100里又修改了Text,这会造成无限递归
OptionButton不能赋值TextBox100,因为它们是两种不同的控件类型。如果想要实现将选项按钮的标题赋值给文本框,可以通过编写类模块代码实现。
你不能在值改变事件给它赋值,应该是按钮点击事件进行赋值
值是固定的嘛,还不如给个数组,搞个循环一个个取值
在VB6.0中,OptionButton和TextBox是不同的控件,它们不能直接进行赋值操作。要在OptionButton的Click事件中编写代码。
Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then '判断OptionButton是否选中
TextBox1.Text = "该赋给TextBox的文本值" '将文本值赋给TextBox
End If
End Sub