拆分datagridview列中的文本消息

本文关键字:文本 消息 datagridview 拆分 | 更新日期: 2023-09-27 17:49:30

我设置了tcpserver侦听器与消息接收。消息格式为"acc123|472348923748989234"。

我想在datagridview的列中按"|"分割。第一条消息显示ok,但分割后的第二条消息返回以下错误:System.IndexOutOfRangeException: Index was outside the bounds of the array

下面是我的代码:
void Timer1_Tick(object sender, EventArgs e)
{
    string _acc = textFromClient3 ;
    string[] txt = _acc.Split(new[] {'|'}, StringSplitOptions.None);
    for (int row = 0; row < dataGridView1.Rows.Count; row++)
    {
        if (dataGridView1.Rows[row].Cells[0].Value != null &&
            dataGridView1.Rows[row].Cells[0].Value.Equals(textFromClient))
        {
            return;
        }
    }
    DataGridViewRow addRow = new DataGridViewRow();
    addRow.CreateCells(dataGridView1);
    addRow.Cells[0].Value = textFromClient;
    addRow.Cells[1].Value = txt[0];
    addRow.Cells[2].Value = txt[1];
    dataGridView1.Rows.Add(addRow);
}

其中textFromClient3是消息,文本[0]是"acc123",文本[1]应该是"472348923748989234"从我的例子

拆分datagridview列中的文本消息

我找到解决办法了。

if (txt.Length > 1 && txt[1] != null)
    {
        addRow.Cells[2].Value = txt[1];
    }

谢谢大家的帮助。

也许我和你有同样的问题。但不同的是如何使用多行消息格式

"acc123|472348923|XXXXX"
"acc123|472348923|gggggggg"
"acc123|472348923|kkkkkkkk"

也许要用这可乐

for (i=0; i <txt.Length; i++)
if (txt.Length > 1 && txt[i] != null)
    {
        addRow.Cells[i].Value = txt[i];
    }