Private Const nMax% = 5Private Sub Combo1_change() Text1.MaxLength = nMax Text1 = Combo1 If Len(Combo1) >= 5 Then Combo1 = Text1 Combo1.SelStart = Len(Combo1) End SubPrivate Sub Form_Load() text1.Visible=False Text1 = "" End Sub 上面是控制可写ComboBox的MaxLength的代码,你下面的问题提的不明白,什么叫触发不可写的ComboBox事件,指的是什么事件?
Option Explicit Public xx As Boolean Private Sub Combo1_Click() If Combo1.Text = 2 Then xx = True Else xx = False End If End SubPrivate Sub Combo2_KeyPress(KeyAscii As Integer) If xx = True Or Len(Combo2.Text) > 5 Then KeyAscii = 0 End If
End SubPrivate Sub Form_Load() 'Me.Combo1.Style = 2 'set value in Design Me.Combo1.AddItem "1" Me.Combo1.AddItem "2" Me.Combo1.AddItem "3" Me.Combo2.AddItem "3" Me.Combo2.AddItem "4" Me.Combo2.AddItem "5" End Sub
1Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Const CB_LIMITTEXT = &H141Private Sub Form_Load() Const Max_Char = 24 Call SendMessage(Combo1.hWnd, CB_LIMITTEXT, Max_Char, 0&) End Sub2 ComboBox 的 Style 属性运行时是只读的。你可以将 Combo2 用 2 个重叠在一起的 ComboBox 来实现,一个预先设置为 Style = 0,另一个预先设置为 Style = 2。Private Sub Form_Load() Dim i As IntegerFor i = 1 To 16 Combo2(0).AddItem i Combo2(1).AddItem i Next iCombo2(0).Visible = True Combo2(1).Visible = False End SubPrivate Sub Combo1_Click() Combo2(1).Visible = True Combo2(2).Visible = False End Sub如果在什么条件下还可以恢复 Combo2 的输入的话,换回来即可。记住,当 Combo2(0) 添加或删除项目时,Combo2(1) 也要相应操作,保持同步。
Private Const nMax% = 5Private Sub Combo1_change()
Text1.MaxLength = nMax
Text1 = Combo1
If Len(Combo1) >= 5 Then Combo1 = Text1
Combo1.SelStart = Len(Combo1)
End SubPrivate Sub Form_Load()
text1.Visible=False
Text1 = ""
End Sub
上面是控制可写ComboBox的MaxLength的代码,你下面的问题提的不明白,什么叫触发不可写的ComboBox事件,指的是什么事件?
1不能写 2可以写
我现在点1 选择了一个后 2变成了不可写 只能下拉
Public xx As Boolean
Private Sub Combo1_Click()
If Combo1.Text = 2 Then
xx = True
Else
xx = False
End If
End SubPrivate Sub Combo2_KeyPress(KeyAscii As Integer)
If xx = True Or Len(Combo2.Text) > 5 Then
KeyAscii = 0
End If
End SubPrivate Sub Form_Load()
'Me.Combo1.Style = 2 'set value in Design
Me.Combo1.AddItem "1"
Me.Combo1.AddItem "2"
Me.Combo1.AddItem "3" Me.Combo2.AddItem "3"
Me.Combo2.AddItem "4"
Me.Combo2.AddItem "5"
End Sub
Private Const CB_LIMITTEXT = &H141Private Sub Form_Load()
Const Max_Char = 24
Call SendMessage(Combo1.hWnd, CB_LIMITTEXT, Max_Char, 0&)
End Sub2
ComboBox 的 Style 属性运行时是只读的。你可以将 Combo2 用 2 个重叠在一起的 ComboBox 来实现,一个预先设置为 Style = 0,另一个预先设置为 Style = 2。Private Sub Form_Load()
Dim i As IntegerFor i = 1 To 16
Combo2(0).AddItem i
Combo2(1).AddItem i
Next iCombo2(0).Visible = True
Combo2(1).Visible = False
End SubPrivate Sub Combo1_Click()
Combo2(1).Visible = True
Combo2(2).Visible = False
End Sub如果在什么条件下还可以恢复 Combo2 的输入的话,换回来即可。记住,当 Combo2(0) 添加或删除项目时,Combo2(1) 也要相应操作,保持同步。