0

好吧...我如何解释这个而不完全混淆?...好吧,我有这个具有 MenuScripts(顶级和二级)的表单。我遇到的问题是第二级之一是“添加”,它会在单击时将您带到另一个表单。这种另一种形式有一个按钮(“记录”)和文本框。这种另一种形式允许用户输入数据,当点击记录按钮时,输入的数据被写入文本文件。好的,回到第一种形式。另一个二级菜单脚本是“更新”,它也将用户带到另一个表单;但首先,用户必须单击列表框中的项目才能继续。

有没有办法使用“if”语句来表示“如果单击 mnuAdd 然后”“然后单击 elseif mnuUpdate”。类似的东西可以让记录按钮多次使用吗?

另外,如果有人可以给我一些关于确保用户选择列表框中的项目的指示,那肯定是一个加号!多谢你们!

不幸的是,由于我的声誉太低,我无法添加图像。

这是我最终目标的可视化表示

4

2 回答 2

0

You need to put a public property on the second form (Details) which specifies which mode it is in. For instance, you could create a mode enumeration like this:

Public Enum EntryModes
    AddBook
    UpdateBook
End Enum

Then, define a public mode property on the second form, like this:

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

Then, when you show the second form from the menu, just set the property first, before showing it:

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

As you can see, in the Upate menu click, I also added a line that passes the information for which book should be updated.

于 2012-07-30T14:32:38.120 回答
0

最简单的方法:在显示第二个表单之前,将它的Tag属性设置为不同的东西——比如"Add""Update"——取决于选择的菜单项。然后您只需测试Tag按钮Click事件中的值并相应地继续。

至于判断一个列表项是否被选中:如果没有,ListBox的SelectedIndex属性将被设置为-1。

于 2012-07-30T14:29:49.690 回答