2012-07-30 63 views
0

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

有没有办法使用“if”语句来表示“如果mnuAdd被点击”然后“elseif mnuUpdate被点击”。会有这样的工作,为录制按钮多次使用?另外,如果有人可以给我一些确保用户在列表框中选择一个项目的指针,那么肯定会是一个加号!多谢你们!

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

Here is a visual representation of my ultimate goal

回答

0

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

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

0

你需要把公共财产的第二种形式(详细信息),说明它是在模式上。例如,你可以创建一个模式枚举这样的:

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菜单中单击,我还添加了一行传递应该更新书籍的信息。