我有一个多页面形式的页面,它从文本框和复选框中获取输入,并在我单击提交按钮时将其添加到其下面的多列列表框中。然后,我希望用户能够在列表框中选择一行,并在文本框和复选框中显示内容以进行编辑。
我可以使用提交按钮将多个文本框和复选框值添加到列表框中,但是当我单击列表框项时它不会选择一行。它什么都不做。看起来焦点没有转移。
如果有人能就我如何解决这个问题给我一些想法或指导,我真的很感激吗?这两个操作的代码是:
Private Sub cmdaddcontrol_Click()
If Not txtbox_Ctrl_Desc = "" Then 'check for input into text box
ctrl_listbox.AddItem 'add items to list box
ctrl_listbox.List(ctrl_list_count, 0) = ctrl_list_count + 1 'add row number in list box column
ctrl_listbox.List(ctrl_list_count, 1) = txtbox_Ctrl_Desc.Value 'set list box column to text box contents
If Not chkbox_ctrl = False Then 'check if check box is selected then insert appropriate value into listbox column
ctrl_listbox.List(ctrl_list_count, 2) = "Y"
Else
ctrl_listbox.List(ctrl_list_count, 2) = "N"
End If
ctrl_list_count = ctrl_list_count + 1 'increment listbox row counter
txtbox_Ctrl_Desc = "" 'reset text box to blank
chkbox_ctrl = False 'reset check box to blank
Else
MsgBox "You have not enetered anything in the control box" 'error message if no control description in text box
End If
End Sub
Private Sub ctrl_listbox_Click()
Dim i As Integer
'find the selected list item
i = ctrl_listbox.ListIndex
ctrl_listbox.Selected(i) = True
'add the values to the text and check boxes above the list box
txtbox_Ctrl_Desc.Value = ctrl_listbox.Column(1, i)
If Not ctrl_listbox.Column(3, i) = " Y" Then
chkbox_ctrl.Value = True
Else
chkbox_ctrl.Value = False
End If
End Sub
答案 0 :(得分:0)
在问题的评论链中找到问题的原因之后,我想在此处坚持解决方案,作为未来可能会遇到问题的人的答案:
.Enabled
和.Locked
属性。 (True
如果控件应允许用户在运行时进行操作/激活。False
如果要拒绝用户与控件的交互。)controlName_eventName()
,例如ListBox1_Click()
。在设计模式下在控件的上下文菜单中选择显示代码时,会生成一个空的_click()
过程。虽然看似微不足道,但有时候简单的细节却无法引起我们的注意 - 在复杂的项目中更是如此。让项目外部的人查看您的问题通常很有帮助。他们无辜地无知你项目的内部运作,他们可能只能提出正确的问题,从而快速解决问题。