2011-10-20 15 views
-2

我正在寫一個實習計劃,需要一些建議。我已經完成了我的研究,但大部分都沒有結果......我需要循環「buttonOneClick」一次迭代。程序將發送一個「P」字符,等待一秒鐘,發送ap,等待一秒鐘等等。 。此外,我需要寫它接收到Excel電子表格中的信息現有代碼的任何幫助/批判將不勝感激VB程序,循環迭代和Excel寫作

這是我有:。

Public Class Form2 

Dim buttonOnePush As Boolean = False 
Dim buttonTwoPush As Boolean = False 



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    ' Send strings to a serial port. 

    Using com5 As IO.Ports.SerialPort = 
      My.Computer.Ports.OpenSerialPort("COM5") 
     com5.WriteLine("P") 

    End Using 

End Sub 

Function ReceiveSerialData() As String 
    ' Receive strings from a serial port. 
    Dim returnStr As String = "" 

    Dim com5 As IO.Ports.SerialPort = Nothing 
    Try 
     com5 = My.Computer.Ports.OpenSerialPort("COM5") 
     com5.ReadTimeout = 10000 
     Do 
      Dim Incoming As String = com5.ReadLine() 
      If Incoming Is Nothing Then 
       Exit Do 
      Else 
       returnStr &= Incoming & vbCrLf 
      End If 
     Loop 
    Catch ex As TimeoutException 
     returnStr = "Error: Serial Port read timed out." 
    Finally 
     If com5 IsNot Nothing Then com5.Close() 
    End Try 

    Return returnStr 
End Function 


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged 
    If IsNumeric(TextBox1.Text) AndAlso IsNumeric(TextBox2.Text) Then 
     TextBox1.Text = CDec(TextBox2.Text) 
    End If 
End Sub 

Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged 
    If IsNumeric(TextBox6.Text) AndAlso IsNumeric(TextBox3.Text) Then 
     TextBox6.Text = CDec(TextBox3.Text) 
    End If 
End Sub 

Private Sub TextBox7_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox7.TextChanged 
    If IsNumeric(TextBox7.Text) AndAlso IsNumeric(TextBox4.Text) Then 
     TextBox7.Text = CDec(TextBox4.Text) 
    End If 
End Sub 

Private Sub TextBox8_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox8.TextChanged 
    If IsNumeric(TextBox8.Text) AndAlso IsNumeric(TextBox5.Text) Then 
     TextBox8.Text = CDec(TextBox5.Text) 
    End If 
End Sub 

Private Sub TextBox15_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox15.TextChanged 
    If IsNumeric(TextBox15.Text) AndAlso IsNumeric(TextBox16.Text) Then 
     TextBox15.Text = Hex(TextBox16.Text) 
    End If 
End Sub 

Private Sub TextBox14_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox14.TextChanged 
    If IsNumeric(TextBox14.Text) AndAlso IsNumeric(TextBox11.Text) Then 
     TextBox14.Text = Hex(TextBox11.Text) 
    End If 
End Sub 

Private Sub TextBox13_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox13.TextChanged 
    If IsNumeric(TextBox13.Text) AndAlso IsNumeric(TextBox10.Text) Then 
     TextBox13.Text = Hex(TextBox10.Text) 
    End If 
End Sub 

Private Sub TextBox12_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox12.TextChanged 
    If IsNumeric(TextBox12.Text) AndAlso IsNumeric(TextBox9.Text) Then 
     TextBox12.Text = Hex(TextBox9.Text) 
    End If 
End Sub 

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
    buttonTwoPush = True 
    buttonOnePush = False 

    Me.Close() 
    Form1.Close() 

End Sub 

末級

回答

0

使用一個Timer以1秒的間隔發出該命令。將定時器從工具箱拖到窗體上,雙擊它以獲得_Tick方法。

在表單的構造函數中設置計時器的.Interval成員,並使用.Start.Stop方法來控制它。

對於Excel文件,您需要添加對Microsoft Excel 12.0(或14.0,如果您有Excel 2010)對象庫的項目引用。在Add Reference對話框的COM標籤下找到它,通過在解決方案資源管理器中右鍵單擊該項目即可獲得該對話框。請參閱this page以獲得詳盡的參考資料(向下滾動到頁面底部以獲取VB.NET中的簡單示例)。