2013-05-13 81 views
2

我有兩個按鈕指的是相同的表格,一個允許信息被直接粘貼到其他手動放置信息的地方。表格完成後,他們將結果放入文本框中。VB兩個按鈕有多個點擊,同步問題

發生的事情是,如果輸入法混合,我有些粘貼或一些手動輸入的按鈕變得不同步,就像按鈕1可能在情況3,按鈕2將是情況5,所以他們可能將結果放入錯誤的框中,甚至替換現有的結果。

基於下面的代碼會有一種方法來引用每個按鈕的狀態,例如,如果按鈕2是在情況3,然後打開窗體5(示例)。

Select Case _Step 
      Case 0 
       _Step = 1 
       If String.IsNullOrEmpty(Me.TextBox6.Text) Then 
        popupform.Show() 
       Else 
        Form3.Show() 
       End If 
       Exit Select 

      Case 1 
       _Step = 2 
       If String.IsNullOrEmpty(Me.TextBox7.Text) Then 
        Form3.Show() 
       Else 
        loadform3.Show() 
       End If 

       Exit Select 

      Case 2 
       _Step = 3 
       If String.IsNullOrEmpty(Me.TextBox8.Text) Then 
        loadform3.Show() 
       Else 
        loadform4.Show() 
       End If 
       Exit Select 
+0

您可以添加一個新的處理程序的每次點擊的按鈕被點擊。使用removehandler button.click/addhandler button.click,adressOf ...方法。然後每個處理程序處理一個步驟 – benst 2013-05-13 07:46:38

+0

很感謝回覆和幫助,你有沒有例子? – 85l00k85 2013-05-13 08:22:26

+0

會寫它作爲答案,如果它不是有用的,我會再次刪除它 – benst 2013-05-13 08:26:45

回答

2
public sub new() 
    AddHandler Button1.Click, AdressOf firstclick 
end sub 

Private Sub firstclick(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    If String.IsNullOrEmpty(Me.TextBox6.Text) Then 
       popupform.Show() 
    Else 
       Form3.Show() 
    End If 
RemoveHandler Button1.Click, AddressOf firstclick 
AddHandler Button1.Click, AdressOf secondclick  
End Sub 

Private Sub secondclick(ByVal sender As System.Object, ByVal e As System.EventArgs) 
    If String.IsNullOrEmpty(Me.TextBox7.Text) Then 
       Form3.Show() 
    Else 
       loadform3.Show() 
    End If 
End sub 
+0

你也可以將button1.click中的處理方法點擊直接發送(發送者,按鈕).click如果你想讓這個手柄在多個按鈕上工作(發送對象肯定是按鈕) – benst 2013-05-13 12:32:00

+0

這兩個按鈕在兩個不同的按鈕上形式,但相互影響,如何,我想它,以便它處理從另一個窗體的按鈕,我將如何編碼addressof? – 85l00k85 2013-05-17 18:15:04

+0

我會寫你的形式爲usercontrols,然後把它們放在一個主窗體中。這個主窗體將包含動作切換的按鈕。那麼你可以在這個主表單中編寫函數的地址。或者這不是一種可能性? – benst 2013-05-21 07:10:14