读取上层代码c#后关闭应用程序

时间:2017-02-26 10:48:31

标签: c# windows winforms

我正在使用arduino串行监视器。我的目标是通过串口连接,发送一些数据并在完成后关闭应用程序。

这是一个C#应用程序。除了应用程序没有关闭的事实之外,一切都很好。为解决此问题,我在Application.Exit()方法的末尾添加了Form1_Load调用。在此更改之后,应用程序启动和关闭,而不读取我正在发送的大写字母。

源代码:

namespace ForTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string[] ports = SerialPort.GetPortNames();
            foreach (string port in ports)
            {
                SerialPort sp = new SerialPort(port, 9600, Parity.None, 8, StopBits.One);
                try
                {
                    sp.Open();
                    try
                    {
                        sp.WriteLine("Z"); // Send 1 to Arduino
                        sp.Close();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                 }
                catch (Exception ek)
                {
                    System.Diagnostics.Debug.WriteLine(ek.Message);
                }

            }

            Application.Exit();
        }

        private void label2_Click(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        } 

    }
}

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您希望将数据从C#发送到 ARDUINO ,然后退出C#app 您无法在Application.exit()之后调用InitializeComponent(),来实现您在发送数据后需要退出

sp.WriteLine("Z"); // Send 1 to Arduino
sp.Close();
Application.Exit();     ///here!!