Vb.net 使按钮具有多种用途

Vb.net 使按钮具有多种用途,vb.net,Vb.net,好的。。。我如何解释这一点而不完全混淆?。。。好的,我有这个表单,它有菜单条(顶级和二级)。我遇到的问题是,第二个级别之一是“添加”,当单击时,它会将您带到另一个窗体。另一个表单有一个按钮(“记录”)和文本框。另一个表单允许用户输入数据,当单击记录按钮时,输入的数据将写入文本文件。好的,回到第一种形式。另一个第二级菜单脚本是“更新”,它也会将用户带到另一个表单;但首先,用户必须单击列表框中的项目才能继续。如何从所选项目中获取数据以显示在相应的文本框中,以及如何获取记录按钮以更新数据,而不是混淆并

好的。。。我如何解释这一点而不完全混淆?。。。好的,我有这个表单,它有菜单条(顶级和二级)。我遇到的问题是,第二个级别之一是“添加”,当单击时,它会将您带到另一个窗体。另一个表单有一个按钮(“记录”)和文本框。另一个表单允许用户输入数据,当单击记录按钮时,输入的数据将写入文本文件。好的,回到第一种形式。另一个第二级菜单脚本是“更新”,它也会将用户带到另一个表单;但首先,用户必须单击列表框中的项目才能继续。如何从所选项目中获取数据以显示在相应的文本框中,以及如何获取记录按钮以更新数据,而不是混淆并认为它只是一个添加数据按钮

是否有一种方法可以使用“if”语句来表示类似“if mnuAdd被单击,那么”“elseif mnuUpdate被单击,那么”。对于让记录按钮有多种用途来说,这样的东西有用吗

另外,如果有人能给我一些关于确保用户在列表框中选择一个项目的建议,那肯定是一个加号!谢谢,伙计们

不幸的是,我不能添加图像,因为我的声誉太低


最简单的方法:在显示第二个表单集之前,根据选择的菜单项,将其
属性标记为不同的属性,例如
“添加”
“更新”
。然后,您只需在按钮的
单击
事件中测试
标记
值,并相应地继续


至于确定是否选择列表项:如果没有,则列表框的
SelectedIndex
属性将设置为-1。

您需要在第二个表单(详细信息)上放置一个公共属性,该表单指定它处于哪种模式。例如,您可以创建如下模式枚举:

Public Enum EntryModes
    AddBook
    UpdateBook
End Enum
Public Property EntryMode As EntryModes
    Get
        Return _entryMode
    End Get
    Set(ByVal value As EntryMode)
        _entryMode = value
    End Set
End Property
Private _entryMode As EntryMode
然后,在第二个窗体上定义公共模式属性,如下所示:

Public Enum EntryModes
    AddBook
    UpdateBook
End Enum
Public Property EntryMode As EntryModes
    Get
        Return _entryMode
    End Get
    Set(ByVal value As EntryMode)
        _entryMode = value
    End Set
End Property
Private _entryMode As EntryMode
然后,当您从菜单中显示第二个表单时,只需先设置属性,然后再显示:

Private Sub mnuAdd_Click(sender As Object, e As EventArgs)
    Dim dialog As New DetailsDialog()
    dialog.EntryMode = EntryModes.AddBook
    dialog.ShowDialog()
End Sub

Private Sub mnuUpdate_Click(sender As Object, e As EventArgs)
    Dim dialog As New DetailsDialog()
    dialog.EntryMode = EntryModes.UpdateBook
    dialog.BookToUpdate = ListBox1.SelectedItem
    dialog.ShowDialog()
End Sub
如您所见,在Upate菜单单击中,我还添加了一行,用于传递应更新哪本书的信息