当前位置:编程学习 > VB >>

百思不得其解VB编小程序的错误

给定的端口名称未以 COM/com 开头或未解析为有效的串行端口,这个是什么原因 --------------------编程问答-------------------- 上代码,让我们见识见识。 --------------------编程问答-------------------- --------------------编程问答-------------------- Imports System.IO.Ports
Imports System.Text
Public Class Form1
    '声明一个通讯端口对象
    Dim RS232 As SerialPort
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For Each sp As String In SerialPort.GetPortNames
            cmbCOM.Items.Add(sp)
        Next
        cmbCOM.Sorted = True
        cmbCOM.SelectedIndex = 0
    End Sub

    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
        Dim mBaudRate As Integer
        Dim mParity As Parity
        Dim mDataBit As Integer
        Dim mStopbit As StopBits
        Dim mPortName As String
        mPortName = cmbCOM.SelectedIndex.ToString
        mBaudRate = 9600
        mParity = Parity.None
        mDataBit = 8
        mStopbit = StopBits.One
        '建立一个通讯端口对象
        RS232 = New SerialPort(mPortName, mBaudRate, mParity, mDataBit, mStopbit)
        RS232.Encoding = Encoding.Unicode
        If Not RS232.IsOpen Then
            RS232.Open()
            btnSend.Enabled = True
            btnReceive.Enabled = True
        Else
            MsgBox("~~通讯端口打开错误(通讯端口已被打开~~)", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
            End
        End If
    End Sub

    Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click
        RS232.Write(txtSend.Text)
    End Sub

    Private Sub btnReceive_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReceive.Click
        Dim InString As String
        InString = ""
        Try
            RS232.ReadTimeout = 1000
            InString = RS232.ReadExisting()
            If InString Is Nothing Then
                Exit Sub
            Else
                txtReceive.Text = InString
            End If
        Catch ex As Exception
            MessageBox.Show("读取错误:" + ex.ToString, "错误通知", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
        End Try
    End Sub

    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
        If RS232 Is Nothing OrElse Not RS232.IsOpen Then
            MsgBox("~~通讯端口尚未打开~~", MsgBoxStyle.Critical Or MsgBoxStyle.OkCancel)
        Else
            RS232.Close()
            btnStart.Enabled = False
            btnReceive.Enabled = False
        End If
    End Sub

    Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click
        If Not RS232 Is Nothing Then
            If RS232.IsOpen Then RS232.Close()
        End If
    End Sub

    Private Sub cmbCOM_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbCOM.SelectedIndexChanged

    End Sub
End Class
--------------------编程问答-------------------- cmbCOM.SelectedIndex.ToString
这个里面必须是com1 com2之类的 --------------------编程问答-------------------- cmbCOM.SelectedIndex.ToString
这句改为COM4
提示 “对端口“COM4”的访问被拒绝。”
有没有可能是我的电脑中的这个端口的问题呀 --------------------编程问答--------------------
引用 5 楼 qiaoyuzhen 的回复:
cmbCOM.SelectedIndex.ToString
这句改为COM4
提示 “对端口“COM4”的访问被拒绝。”
有没有可能是我的电脑中的这个端口的问题呀

你先看看有没有这个端口吧. "我的电脑"右键->"管理"->"设备管理器"->"端口" --------------------编程问答-------------------- 这个口是有的。
补充:VB ,  COM/DCOM/COM+
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,