3

私のフォーム アプリケーションでは、シリアル ポートを使用してシリアル データを読み取り、後で使用するためにそれらをリストに保存しています。停止ボタン イベントがありますが、ボタンをクリックしてもフォームが終了しません。フォームには、シリアル ポートから取得した解析済みの値を表示するテキスト ボックスが含まれています (解析プロセスは、[開始] というボタンをクリックすると開始されます)。私の目的は、停止ボタンが押されたときにシリアル ポートからのデータの受信を一時停止することです。現在、Start ボタンをクリックするとデータの読み込みが始まりますが、Stop ボタンがなぜか機能しません。

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        serialPort1.NewLine = "-";
        RxString = serialPort1.ReadLine();
        RxString = RxString.Replace("$", "");

        this.Invoke(new EventHandler(DisplayText));

    }
    private void DisplayText(object sender, EventArgs e)
    {

        richTextBox1.AppendText(RxString);
        GlobalList.AddRange(parsed());


        displayglobal();
        graphs();
    }
    private void Start_Click(object sender, EventArgs e)
    {
        serialPort1.PortName = "COM32";
        serialPort1.BaudRate = 9600;
        serialPort1.DtrEnable = true;
        serialPort1.Open();
        if (serialPort1.IsOpen)
        {
            Start.Enabled = false;
            Stop.Enabled = true;
            richTextBox1.ReadOnly = false;

        }

    }

    private void Stop_Click(object sender, EventArgs e)
    {
        if (serialPort1.IsOpen)
        {
            serialPort1.Close();
            Start.Enabled = true;
            Stop.Enabled = false;
            richTextBox1.ReadOnly = true;



        }
4

1 に答える 1