如何在文本框中显示字符串数组

2023-12-12

您好,我是 C# 新手,我的第一个 Windows 窗体应用程序遇到问题。

我有来自串行端口的数据,并找到了一种处理数据并将其存储到 3 个不同字符串数组中的方法。我无法解决的是如何将数组中的数据显示到它们自己的单独文本框中,我只想显示当前索引位置指向的数组中的数据。

我的 Windows 窗体设计中有 3 个文本框,它们已命名为:textBoxmag, textBoxlat and textBoxlon我想显示变量string[] mag, string[] lat and string[] lon在相应的文本框中。

请帮助我,我正确地坚持了这一点,尽管对于更有经验的 C# 程序员来说这可能看起来很简单。下面是我的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        string RxString;// where the raw serial data is stored
        string[] mag = new string[1000];//where magnetic data is stored 
        string[] lat = new string[1000];//where latidude data is stored
        string[] lon = new string[1000];///where longitude data is stored 
        string ends = "\r\n";//end of data sentence identifier
        string starts = "G";//start of data sentence identifier

        int i; //index lat data 
        int j;//index lon data
        int k;//index mag data


        public Form1()
        {
            InitializeComponent();
        }

        private void buttonStart_Click(object sender, EventArgs e)
        {
            serialPort1.PortName = "COM5";//define sierial port in which PIC is connected to
            serialPort1.BaudRate = 4800;//set baud rate to match PIC

            serialPort1.Open();
            if (serialPort1.IsOpen)//if the port is open you can press the start button
            {
                buttonStart.Enabled = false;//start button disbaled
                buttonStop.Enabled = true;//stop button enabled
                textBox1.ReadOnly = false;//allow writing in text box
            }
        }

        private void buttondtop_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Close();
                buttonStart.Enabled = true;
                buttonStop.Enabled = false;
                textBox1.ReadOnly = true;
            }
        }



        private void DisplayText(object sender, EventArgs e)
        {
            textBox1.AppendText(RxString);//add watever is in raw data string to what is already in text box

        }


        private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)//activates when port is open and data in buffer
        {
            RxString = serialPort1.ReadExisting();//read raw data from serial port into string
            this.Invoke(new EventHandler(DisplayText));//invoke allows it to call function diplay text

            if (RxString.StartsWith(starts))//if the string starts with "G"
            {
                if ((RxString.Length > 36))//if there is aleast one string sentence
                {
                    if (RxString.EndsWith(ends))// if the string ends with "\r\n" process the string
                        serialPort1.Close();//close serial port 
                    lat[i] = RxString.Split(',')[0].Substring(4);// extract latitude store in string array
                    i++;//increment index of latitude data array
                    lon[j] = RxString.Split(',')[2];// extract longitude store in string array
                    j++;//increment index of longitude data array
                    mag[k] = RxString.Split(',')[3].Substring(7).Trim();// extract magnetic data store in string array
                    k++;//increment index of magnteric data array
                    RxString = null;//Reset raw data string
                    serialPort1.Open();//open serial port ready for new string sentence
                }
            }
            else RxString = null;// if the raw data string sentence does not start with "G" reset the array
           }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (serialPort1.IsOpen) serialPort1.Close();
        }

        private void labellat_Click(object sender, EventArgs e)
        {

        }

        private void label3_Click(object sender, EventArgs e)
        {

        }
    }
}

您将需要转换您的string[]s into strings。您可以使用以下命令轻松完成此操作string.Join() method:

string separator = ", ";
string[] mag = new string[] { "hello", "world" };

textBoxmag.Text = string.Join(separator, mag);
// textBoxmag.Text == "hello, world";
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在文本框中显示字符串数组 的相关文章

  • 强制枢轴项目在显示之前预加载

    我有一个带有多个 PivotItems 的 Pivot 其中一个包含一个画布 将其项目放置在动态位置 取决于数据 我获取数据 并且可以在用户选择该项目之前将这些项目放置在其位置 这不是第一个枢轴 但是 只有当我选择 PivotItem 时
  • 在 C 中读取字符时打印

    我正在尝试编写一个简单的小代码片段来响应箭头键按下 我知道 up 由 A 表示 并且我有以下代码来检查该序列 while 1 input char fgetc stdin if input char EOF input char n bre
  • 通过 Microsoft Graph 从 Azure AD 获取组中的用户

    我正在通过 Microsoft Graph 从 AzureAD 请求用户列表 我取回了 User 对象 但它们的 MemberOf 属性始终为 null 我认为我可以使用 Expand 来专门请求该属性 虽然它不会导致错误 但它也不会填充该
  • 通过 WCF 提供类对象的数组或列表

    任何提供自定义类对象列表或数组的 WCF 客户端服务器示例都会对我有所帮助 但这是我到目前为止所得到的 这是我想提供的班级系统 namespace NEN Server FS Serializable public class XFS pr
  • 为什么Java不支持C中的clrscr这样的函数?

    我有一个问题 对很多人来说可能听起来很愚蠢 但我不能停下来把它发布在这里 因为在互联网上找不到任何东西 为什么java没有我们在C中使用的clrscr之类的函数 如果我创建了一个基于用户输入反复迭代的 java 控制台应用程序 然后如果我想
  • 从 Web 浏览器控件读取 Javascript 变量

    我正在尝试读取从表单上的 WebBrowser 控件加载和调用的 Javascript 变量的值 Example index html 引用名为 test js 的 javascript 在 test js 上 创建并填充了几个变量 然后i
  • 保存到会话状态的 DataTable 丢失事件处理程序

    我有一个来自强类型数据集的数据表 该数据集在 TableNewRow 事件上有一个事件处理程序 用于初始化一些日期字段 当我将此表保存到会话状态时 事件处理程序会正常触发 直到表被序列化 在后续请求中 当我从会话状态检索表时 事件处理程序不
  • 在硬件不足的情况下进行编码

    我目前正在使用 C 中的 SIMD 指令进行编码 并尝试使用 IDE 在实时编码时显示错误 拼写错误等 问题是 我使用的是 AVX512 指令 我的硬件不支持这些指令 只有我用于编译的服务器支持 有没有一种方法可以在 IDE 中进行错误检查
  • 通过模板参数向类添加方法

    我希望在类中拥有一个模板参数特定函数 取消启用enable if 它的名称保持不变 参数类型有所不同 尽管这应该不相关 因为只有一个被初始化 enum class MyCases CASE1 CASE2 template
  • C# Response.Write pdf 不适用于 Android 浏览器

    我目前在 Android 环境中使用 pdf 导出时遇到了巨大的问题 我正在使用报告查看器控件将报告呈现为字节数组 接下来我使用response binarywrite方法将字节流输出到浏览器 这适用于所有浏览器以及 iPhone 和 iP
  • std::function 中参数的自动动态转换

    我们有多态类 A 和 B 例如 struct A virtual A struct B final public A void f std cout lt lt f lt lt std endl 我想分配一个变量std function
  • 底层连接已关闭:接收时发生意外错误

    我来这里是因为我在通过 ftp 协议下载一些文件时遇到问题 这很奇怪 因为它偶尔会发生 甚至对于同一个文件也是如此 只是一个精确度 我正在下载非常大的文件 从 500 Mo 到 30Go 以下是我的函数返回的异常类型 抱歉 这是法语 Sys
  • C++ boost asio超时用于阻止连接

    我有一个 C boost 客户端 它执行阻塞连接并在收到响应后处理消息 我面临一个奇怪的问题 tcp resolver query query tcp v6 this gt host port tcp resolver query v4 m
  • OpenMP while 循环中的手动同步

    我最近开始使用 OpenMP 为大学的一个项目做一些 研究 我有一个矩形且均匀分布的网格 在该网格上我使用迭代方案求解偏微分方程 因此 我基本上有两个 for 循环 网格的 x 方向和 y 方向各一个 并由 while 循环包裹以进行迭代
  • 为什么转发引用与右值引用具有相同的语法?

    我刚刚对这些 相当 新的功能做了一些研究 我想知道为什么 C 委员会决定为它们引入相同的语法 看来开发人员不必要浪费一些时间来理解它是如何工作的 而一种解决方案可以让我们思考进一步的问题 就我而言 它是从问题开始的 可以简化为 includ
  • xaml.cs 文件上的 InitializeComponent() 出现错误

    有时我会收到一个红色错误 内容如下 InitializeComponent 在当前上下文中不存在 以及我的其他变量 xaml受约束的x Name The x ClassXaml 文件中的名称空间和类名确实对应于我的xaml cs file
  • 在 C++ 中的 Switch-Case 中执行 OR 运算

    你会如何在 C 中做到这一点 例如 如果用户按 ESC 或 q 或 Q 我试图触发程序退出 我尝试寻找它 但在 C 中没有找到它的语法 我知道如何使用 if else 来做到这一点 但是可以使用 switch case 来做到这一点吗 当然
  • C++中main函数可以调用自身吗?

    谁能告诉我下面的代码有什么问题吗 int main return main 我测试了一下 编译正确 它永远运行 幕后还有什么阴谋吗 TLDR 呼叫main导致未定义的行为 标准中使用的术语以及对程序员和编译器的影响似乎存在混淆 首先 单独的
  • 迭代非增量枚举

    在你问之前 我已经looked https stackoverflow com questions 261963 c iterate through an enum and looked https stackoverflow com qu
  • 用 C# 解析和查询 SOAP

    我正在尝试解析一个大量命名空间的 SOAP 消息 源也可以在here http tinyurl com n3av6k

随机推荐

  • 如何强制 Visual Studio 引用本地企业库 DLL 文件而不是已安装的目录文件

    我有一个引用企业库 DLL 的 asp net 项目 我可以构建和部署我的项目 但部署构建失败 因为它找不到 DLL 例如 我查看了 Microsoft Practices EnterpriseLibrary Common 的属性 我注意到
  • 我可以在 OpenCV 中使用重映射来获取点位置吗

    我拍了一张照片A使用 RGB 相机 我知道一个点的位置g在照片中A 相机需要进行相机校准 现在我想知道点的位置g校准后 我使用的代码如下 但我想获取点位置 而不是图像 我怎样才能做到这一点 你能给我一些建议吗 initUndistortRe
  • jquery 选项卡的下一个-上一个功能

    我需要在单击 Next 和 Prev html 按钮时为 jquery 选项卡提供 Next Prev 功能 我在用jquery 1 9 1 js and jquery ui 1 10 2 custom js文件 我已经实现了下面的代码 但
  • 如何使用sql定义的函数作为字段?

    我正在使用 SQL 在 Sql Management Studio 2012 中创建表 如何使用 Sql Server 中已定义的名称 例如 User ID User Name 创建字段或列 我想将它们用作表中的字段 表定义来自重复帖子 c
  • VB6代码升级[重复]

    这个问题在这里已经有答案了 可能的重复 从 VB6 迁移到 NET 的最佳策略 Visual Basic 6 0 转换工具比较 有没有任何人都可以推荐的好工具来将商业 VB6 应用程序转换为 VB NET 应用程序 我发现了一些免费的和一些
  • 尝试对 python httplib 中无法访问的网络进行套接字操作

    我正在尝试使用 httplib 从 django 创建 REST 客户端 但它拒绝连接 我尝试了以下方法 import hashlib import hmac from django shortcuts import render to r
  • 更新期间 MS Access 字段过多

    当我尝试在 MS Access 中更新表时 它给出错误 指出定义的字段太多 我用谷歌搜索 发现我需要修复和压缩 我做了 但仍然不起作用 有人有什么想法吗 另外 什么实际上算作 太多字段 计数器 Thanks 我似乎找到了答案 Microso
  • 在保存之前删除不会失效:是真的吗?

    我的情况 我有复杂的 24 个实体 许多关系和许多有序对多关系 模型Core Data 现在假设我有一个实体PlayList和一个实体Song 并在PlayList有序对多关系Song 这种关系存在逆关系 并且两者都有nullify删除规则
  • 计算文件中每一列的平均值

    我有一个包含 n 行 以逗号分隔 和列的文本文件 我想找到每列的平均值 不包括空字段 示例输入如下所示 1 2 3 4 6 7 期望的输出是 2 5 4 5 4 5 我尝试过 awk F for i 1 i lt NF i sum i su
  • C# - 将对象保存到 JSON 文件

    我正在编写一个 Windows Phone Silverlight 应用程序 我想将对象保存到 JSON 文件 我写了下面的代码 string jsonFile JsonConvert SerializeObject usr Isolate
  • 使用批处理运行带有参数的exe

    如何将参数传递到运行 exe 的批处理文件中 我有一个需要 2 个参数的程序 我想使用具有定义参数的 bat 文件运行它 5 五次 像这样的东西 FOR L G IN 1 1 5 DO start path program exe 20 1
  • 为什么 gcc 和 clang 为 std::find 生成这么多代码?

    我在 godbolt org 中输入以下代码 并使用 gcc 10 1 和 clang 10 编译它 include
  • 按键表达式存储静态过滤器

    我有一个函数 当传入一个时 它会生成一个表达式来通过主键过滤表Object 这非常类似于Find函数 只是它没有实现 所以你可以传递一个IQueryable之后周围 public static Expression
  • 使用标头过滤代理响应标头

    我有一个上游服务器 它经常通过返回 Set Cookie 响应标头来设置 Cookie 我想在上游服务器前面有一个 nginx 代理 Browser gt Nginx gt Upstream If the Browser gt Nginx请
  • 引用如何绑定到纯右值?

    cppreference 说 当引用绑定到纯右值时 会创建一个临时对象 它们是指 const 左值引用和右值引用吗 当纯右值具体化时 会创建临时对象 以便将其用作左值 这会在以下情况下发生 C 17 起 将引用绑定到纯右值 如果他们的意思是
  • 使部分(但不是全部)(CUDA) 内存访问不被缓存

    我只是注意到 CUDA 内核 内存访问完全有可能不被缓存 参见例如这个答案在这里 这可以吗 对于单个内核 在运行时而不是在编译时 仅用于写入而不是读取和写入 仅当您单独编译该内核时 因为这是通过代码生成启用的指令级功能 您还可以使用内联 P
  • Python3使用字典替换

    谁能解释一下这里出了什么问题 def get complementary sequence string dic A T C G T A G C for a b in dic items string string replace a b
  • 如何读取 log4j 输出到网页?

    我有一个网页 用于管理目的 它运行一个任务 从远程站点获取图像 为了能够仅使用浏览器而不是 ssh 等来调试任务 我希望能够读取执行线程的所有日志输出并将其吐出到网页 任务归结为 在调用开始时更改当前线程的日志级别 并在调用完成时恢复 读取
  • Hibernate 遇到 mysql := 运算符时出现异常

    当我执行以下代码时 出现异常 Exception org springframework orm hibernate3 HibernateQueryException Not all named parameters have been s
  • 如何在文本框中显示字符串数组

    您好 我是 C 新手 我的第一个 Windows 窗体应用程序遇到问题 我有来自串行端口的数据 并找到了一种处理数据并将其存储到 3 个不同字符串数组中的方法 我无法解决的是如何将数组中的数据显示到它们自己的单独文本框中 我只想显示当前索引