资深Bug工程师 2023-11-01 21:30 采纳率: 50%
浏览 5
已结题

C#地磅称重系统遇到为问题

自己打算用C#手写一个简单的地磅称重系统,目前遇到问题,虚心请教
如图

img

该系统分如下几步
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);
                  
        }

        

    }
}

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-11-01 21:31
    关注

    引自强大而免费的微信小程序:皆我百晓生

    关于你的问题:

    1.怎么计算净重?
    净重可以通过减去皮重和毛重来计算,可以在点击皮重时即进行计算,然后将结果显示在净重框内。

    修改代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
        comboBoxPZ.Text = label1.Text;
        int mz = Convert.ToInt32(comboBoxMZ.Text);
        int pz = Convert.ToInt32(label1.Text);
        int jz = mz - pz;
        comboBoxJZ.Text = jz.ToString();
    }
    

    2.DataGridView控件怎么实现点击某一单元格,选中一整行,双击此行,数据重新填回输入框内?
    可以通过设置DataGridView的SelectionMode属性为FullRowSelect来实现点击某一单元格选中整行的功能。然后通过添加DataGridViewCellDoubleClick事件来处理双击行的事件,将所选行的数据填回输入框内。

    修改代码如下:

    private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.RowIndex >= 0)
        {
            DataGridViewRow row = dataGridView1.Rows[e.RowIndex];
            comboBoxCarNo.Text = row.Cells["CarNo"].Value.ToString();
            textBoxGoods.Text = row.Cells["Goods"].Value.ToString();
            textBoxCompany.Text = row.Cells["Company"].Value.ToString();
            comboBoxMZ.Text = row.Cells["MaoZhong"].Value.ToString();
            comboBoxPZ.Text = row.Cells["PiZhong"].Value.ToString();
            comboBoxJZ.Text = row.Cells["JingZhong"].Value.ToString();
        }
    }
    

    如果还有其他问题,请随时追问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月9日
  • 已采纳回答 11月1日
  • 创建了问题 11月1日

悬赏问题

  • ¥15 asp写PC网站开通了微信支付,扫码付款不能跳转
  • ¥50 AI大模型精调(百度千帆、飞浆)
  • ¥15 关于#c语言#的问题:我在vscode和codeblocks中编写c语言时出现打不开源文件该怎么办
  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊