使按钮消失并根据列表的大小显示在visual basic中

时间:2017-02-27 09:29:40

标签: vb.net

基本上,我的Windows窗体应用程序是一个程序,您可以在文本框中输入一个人的姓名,并将其高度以厘米为单位输入另一个文本框。单击名为btnAddNewPerson的按钮时,文本框中的输入将转到2个名为 lstNames lstHeight 的不同列表。一旦添加了一定数量的人并单击了计算按钮(btnCalc),就会出现一个消息框,其中包含最高的最小和平均高度。

我遇到的问题是,一旦创建了一定数量的条目,我希望“添加新人”按钮消失(变为不可见)。并且我希望计算按钮仅在一定数量的条目出现后才出现(不希望过早计算)。

我尝试过以下代码但不起作用。 程序崩溃了第二个我移动鼠标,我得到的错误是

“Height Finder.exe中出现未处理的'System.NullReferenceException'类型异常 附加信息:对象引用未设置为对象的实例。“

Private Sub frmHeightFinder_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
    If lstNames.Count >= 4 Then
        btnAddNewPerson.Visible = False
    Else btnAddNewPerson.Visible = True
    End If
End Sub

1 个答案:

答案 0 :(得分:0)

如果在单击按钮之前它(即移动鼠标时)崩溃,则鼠标事件调用出现问题。更好的方法是,如果满足条件(lstnames.Count> 4),则检查AddPerson方法,然后使其不可见。此外,禁用按钮可能是个好主意,而不是让它不可见。 一个例子:

Private Sub btnAddNewPerson_Click(sender As Object, e As EventArgs)
    ' Add person to the list code here

    If lstNames.Count >= 4 Then
        btnAddNewPerson.Enabled = False
        btnCalc.Enabled = True ' I assume this is what you want here
    End If
End Sub