【问题标题】:Making buttons disappear and appear in visual basic depending on the size of a list根据列表的大小使按钮消失并出现在 Visual Basic 中
【发布时间】:2017-02-27 09:29:39
【问题描述】:

基本上,我的 Windows 窗体应用程序是一个程序,您可以在其中将一个人的姓名输入一个文本框,并将他们的身高(以厘米为单位)输入另一个文本框。当单击名为 btnAddNewPerson 的按钮时,文本框中的输入将转到 2 个不同的列表,分别称为 lstNameslstHeight。一旦添加了一定数量的人并单击了计算按钮 (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

【问题讨论】:

  • 问题是,你是怎么调用这个方法的?编译器如何知道如何执行这个方法?什么时候去?
  • Please don't ask the same question twice(尤其是不同账户!)
  • 我明白为什么,但我这样做是因为我在时间限制下,我无法再写一个问题,因为它是一个负面评级问题,被禁赛 1 天。由于我没有清楚地写出我想要的内容,我决定重写这个问题。不过我以后不会这样做了。

标签: vb.net


【解决方案1】:

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

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

【讨论】:

  • 编辑:似乎可以工作,但仍需要进行一些更改。如果它再次播放,我会通知你
  • 好的。请记住接受答案。祝你好运。
猜你喜欢
  • 2017-07-17
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多