2012-11-02 63 views
0

我想以编程方式在我的C#程序中设置串行(COM)端口设置(波特率,停止位等)。当我执行类似以下操作时,它不会将设置保存在我的Windows环境。我完全在错误的轨道上?在Windows环境中保存SerialPort设置

SerialPort serialPort = new SerialPort(); 
    string[] ports = SerialPort.GetPortNames(); 

    serialPort.PortName = "COM5"; 
    serialPort.BaudRate = 9600; 
    serialPort.DataBits = 8; 
    serialPort.DtrEnable = true; 

    serialPort.StopBits = StopBits.One; 
    serialPort.Parity = Parity.None; 
    if (serialPort.IsOpen) serialPort.Close(); 
+0

为什么要保存设置?你是否想过保存设置?如果你不想保存这些设置,而且它还是这样做了呢? –

+0

您是否试图在应用程序启动之间保留设置或在运行时设置它们?您在此展示的任何内容都不会节省任何费用 –

+0

问题不明显,请回复以前的评论提供更多信息。 –

回答

2

进入您的项目属性的设置选项卡,并为要坚持这样的添加值的设置:

enter image description here

然后访问它们在你的代码是这样的。在应用程序关闭时保存它们:

public partial class Form1 : Form 
{ 
    SerialPort serialPort; 
    public Form1() 
    { 
     InitializeComponent(); 
     serialPort = new SerialPort(); 
     serialPort.PortName = Properties.Settings.Default.PortName; 
     serialPort.BaudRate = Properties.Settings.Default.BaudRate; 
     serialPort.DataBits = Properties.Settings.Default.DataBits; 
     serialPort.DtrEnable = Properties.Settings.Default.DtrEnable; 
     serialPort.StopBits = Properties.Settings.Default.StopBits; 
     serialPort.Parity = Properties.Settings.Default.Parity; 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     serialPort.PortName = "COM1"; 
    } 

    private void Form1_FormClosing(object sender, FormClosingEventArgs e) 
    { 
     Properties.Settings.Default.PortName = serialPort.PortName; 
     Properties.Settings.Default.BaudRate = serialPort.BaudRate; 
     Properties.Settings.Default.DataBits = serialPort.DataBits; 
     Properties.Settings.Default.DtrEnable = serialPort.DtrEnable; 
     Properties.Settings.Default.StopBits = serialPort.StopBits; 
     Properties.Settings.Default.Parity = serialPort.Parity; 
     Properties.Settings.Default.Save(); //Saves settings 

    } 
}