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

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 我下载图形界面重启完就变成这样了,打字也打不了,动也动不了,该怎么解决(操作系统-centos)
  • ¥15 VBA中在窗体中遍历所有checkbox控件,提取出被选中的checkbox的caption值
  • ¥15 在Ubuntu上有什么命令,或者是系统文件能告诉我链接nvme ssd的pcie槽位是不是支持热插拔功能?
  • ¥15 ansys license许可证问题
  • ¥20 QQ号和密码都能正常登录微信 QQ号和密码登录微信显示密码错误
  • ¥15 qiankun主应用注册子应用提示跨域
  • ¥15 单片机RTOS Kernel与应用分离开发,Kernel如何调起应用?
  • ¥15 快手小店商家版APP怎么第三方APP跳转到指定用户聊天界面
  • ¥15 为什么AVL fire软件仿真时的步长改变了,仿真结果也会改变
  • ¥100 如何帮我写一个java小游戏