gpt4 book ai didi

C# 在文本框中显示一个变量

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:46 26 4
gpt4 key购买 nike

我正在使用 NUCLEOF411RE 向我的 PC 发送传感器信息。我在 COM98 上收到此数据,波特率为 115200。现在我想编写一个 Windows 应用程序,它将拆分我的字符串并将其放在我的文本框中。直到现在我用 Button_click 事件显示数据。它将值放在实际上是真实值的文本框上。但是如果我移动我的传感器并再次点击按钮,应该会有更多不同的值,但文本框上有相同的值。此外,我想自动刷新文本框,而不是单击按钮。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;

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

public string comport;
SerialPort serial = new SerialPort();


void getAvailablePorts()
{
String[] ports = SerialPort.GetPortNames();
comboBox1.Items.AddRange(ports);
comport = comboBox1.Text;
}

private void button1_Click(object sender, EventArgs e)
{

try
{
if(comboBox1.Text=="" || textBox6.Text=="")
{
MessageBox.Show("Please Select Port Settings");
}
else
{

serial.PortName = comboBox1.Text;
serial.BaudRate = Convert.ToInt32(textBox6.Text);
serial.Parity = Parity.None;
serial.StopBits = StopBits.One;
serial.DataBits = 8;
serial.Handshake = Handshake.None;
serial.Open();

MessageBox.Show("connected!");
}
}
catch (UnauthorizedAccessException)
{
MessageBox.Show("Unauthorised Access");
}
}

private void button2_Click(object sender, EventArgs e)
{

textBox1.Clear();
textBox2.Clear();
textBox3.Clear();
textBox4.Clear();
textBox5.Clear();
MessageBox.Show("connection closed!");
serial.Close();
}

private void button3_Click(object sender, EventArgs e)
{
try
{

textBox5.Text = serial.ReadLine();
/*String[] Stringsizes = A.Split(new char[] {' '});
textBox1.Text = Stringsizes[0];
textBox2.Text = Stringsizes[1];
textBox3.Text = Stringsizes[2];
textBox4.Text = Stringsizes[3];*/
// textBox5.Text = A;
//Array.Clear(Stringsizes, 0, 3);



}
catch (Exception) { }
}
}
}

谁能帮帮我?

最佳答案

您能否提供更多信息,说明为什么使用 Button_Click 事件来阅读文本?也许这是您订阅 COM 端口的 DataReceived-Event 的一种可能方式?它看起来像这样:

serial.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);

private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
string receivedString = serial.ReadExisting();
//Do something here...
}

关于C# 在文本框中显示一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com