2013-05-13 82 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