-1

私はこのコードを持っています:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        Dim num As String
        Dim message As String
        Dim name As String
        message = txtMessage.Text
        Dim count As Integer = Me.TblContactsBindingSource.Count
        If i < TblContactsDataGridView.Rows.Count - 1 Then 'stay within bounds

        i = i + 1 ' for all rows except Row0

        TblContactsDataGridView.Rows(i - 1).DefaultCellStyle.BackColor = Color.White ' restore previous highlight
        TblContactsDataGridView.Rows(i).DefaultCellStyle.BackColor = Color.Bisque 'new highlight
        num = Me.TblContactsDataGridView.Rows(i).Cells(1).Value.ToString()
        name = Me.TblContactsDataGridView.Rows(i).Cells(0).Value.ToString()
        If SerialPort1.IsOpen() Then
            SerialPort1.Write("AT" & vbCrLf)
            SerialPort1.Write("AT+CMGF=1" & vbCrLf)

            SerialPort1.Write("AT+CMGS=" & Chr(34) & num & Chr(34) & vbCrLf)
            SerialPort1.Write(message & Chr(26))
            MessageBox.Show("Message has been successfully sent to " & vbNewLine & name & " (" & num & ") ", "Message Sent", MessageBoxButtons.OK, MessageBoxIcon.Information)


        End If

    Else            'next row is off the bottom so
        'i = 0       'reset index
        'TblSmsDataGridView.Rows(TblSmsDataGridView.Rows.Count - 1).DefaultCellStyle.BackColor = Color.White 'restore bottom row
        'TblSmsDataGridView.Rows(i).DefaultCellStyle.BackColor = Color.Bisque 'highlight top row  

    End If

コマンドボタンにはこれがあります:

Timer1.Interval = 2000
Timer1.Enabled = True 'no need to enable it and start it; one or t'other

何が起こるかというと、メッセージ ボックスが何度も表示されます。メッセージボックスが終了したら自動的に閉じるようにするにはどうすればよいですか? コードは何度も繰り返されるため、「else」でコメントしました。

4

2 に答える 2

2

カスタム メッセージ ボックスを使用する必要があります。通常のメッセージボックスは、あなたが望むことをしません。2秒ごとにポップアップします。最良の選択は、新しいフォームを作成し、それをメッセージ ボックスとして表示することです。:)

于 2012-10-29T05:54:40.330 に答える
0

timer1.enabled = falsetimer1.tick ハンドラで設定する必要があります。

于 2012-10-29T05:57:47.110 に答える