自己打算用C#手写一个简单的地磅称重系统,目前遇到问题,虚心请教
如图
该系统分如下几步
1.重车上磅,上方显示区显示重量为毛重,此时点击毛重按钮,上方显示区重量数值,显示到下方毛重显示框内,车号,货品,收发货单位等为手动输入。然后点保存,数据存入到右下方数据存储区内,这里我用的一个DataGridView控件
2.待卸货完毕,空车上磅,上方显示区显示重量为皮重,此时要点击刚才存储的车辆信息,车辆信息又重新填回下方框内,然后点击皮重,显示区重量显示到皮重框内 并计算净重,此时 车号,收发货,毛重 皮重 净重等信息齐全,点击保存 信息又存回右下方存去区内。
第二种情况就是 空车先上磅,方法跟上面一样。
目前遇到的问题是:1,怎么计算净重, 2. DdataGridView控件怎么实现点击某一单元格,选中一整行,双击此行,数据重新填回输入框内(注意,是双击此行,不是双击控件) 或者有没有其他控件可以实现此功能。
代码如下,请指教。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace dibang系统
{
public partial class Form1 : Form
{
private SerialPort serial;
public Form1()
{
InitializeComponent();
serial = new SerialPort();
serial.PortName = "COM5";
serial .BaudRate = 9600;
serial .Parity = Parity.None;
serial .StopBits = StopBits.One;
serial.Open();
serial.DataReceived += Serial_DataReceived;
CheckForIllegalCrossThreadCalls = false;
}
public void Serial_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
int len = serial.BytesToRead;
if (len > 0)
{
byte[] data = new byte[len];
int nRead = serial.Read(data, 0, len);
//获取原有的文本
String strText = label1.Text;
String strRecv = Encoding.UTF8.GetString(data);
strRecv = strRecv.Substring(1, 6);
strRecv = strRecv.TrimStart('0');
Convert.ToInt32(strRecv);
label1.Text = strRecv;
}
}
private void btn_mz_Click(object sender, EventArgs e)
{
comboBoxMZ.Text = label1.Text;
int mz = Convert.ToInt32(label1.Text);
}
private void button1_Click(object sender, EventArgs e)
{
comboBoxPZ.Text = label1.Text;
int pz = Convert.ToInt32(label1.Text);
}
}
}