2012-07-30 71 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菜單中單擊,我還添加了一行傳遞應該更新書籍的信息。