琪y 2022-03-17 14:50 采纳率: 100%
浏览 36
已结题

c#在textbox控件里面输入,然后在读出来

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Srr110uLib;
using Srr1100U;
namespace WpfApplication1
{

public partial class MainWindow : Window
{

    SrrReader uhf = new SrrReader ("com8");
    private string cc2;

    public MainWindow ()
    {

        InitializeComponent ();
    }

    private void button_Click (object sender, RoutedEventArgs e)
    {

        /* SsuControl ssr = new SsuControl ();
         ssr.Init ("com8");
          byte[] cc=null;*/

        uhf.ConnDevice ();
        uhf.Read (c);


    }
    void c (string i)
    {
        this.Dispatcher.Invoke (() => { listBox.Items.Add (i); });
        uhf.CloseDevice ();

    }

    private void button1_Click (object sender, RoutedEventArgs e)
    {
        SsuControl cc = new SsuControl ();
        cc.Init ("com8");

        byte[] a = cc.ReadDate ();

        cc.WriteDate (a);
        foreach (byte i in a)
            textBox.Text += i.ToString ("X2");
        cc.Close ();
    }

    private void textBox1_TextChanged (object sender, TextChangedEventArgs e)
    {

    }

    private void button2_Click (object sender, RoutedEventArgs e)
    {
        SsuControl aa = new SsuControl ();
        aa.Init ("com8");



        /*byte[] b = {“”原本是在这里输入0x01这些“” };*/


        /*string cc = textBox1.Text.ToString ();
        cc2 = "00000000";
        cc = cc2.Substring (0, 8 - cc2.Length) + cc;
        byte[] b = System.Text.Encoding.Default.GetBytes (cc);这里是从网上摘抄的*/

        aa.WriteDate (b);
        aa.Close();
       






    }

    private void textBox_TextChanged (object sender, TextChangedEventArgs e)
    {

    }
}

}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

byte[] b = {原本是在这里输入0x01这些“};,然后读出来,现在我想启动之后,在textbox里面写,然后读写出来,怎么弄各位大咖

  • 写回答

2条回答 默认 最新

  • 於黾 2022-03-17 15:30
    关注
    string s=textbox.Text.Replace(" ","");//去掉多余的空格
    if(s.Length%2>0)
    {
    //不是偶数,不能转换
    return;
    }
    byte[] b=new byte[s.Length/2];
    for (int i=0;i<b.Length;i++)
    {
    string s1=s.Substring(i*2,2);
    bool isbyte=byte.TryParse(s1,System.Globalization.NumberStyles.HexNumber,null,out b[i]);
    //这里要再判断一下isbyte,如果输入的没法转换成16进制数,后面不要发送
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月25日
  • 已采纳回答 3月17日
  • 创建了问题 3月17日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题