C# .NET - when split msg variable to more lines it not give me values in lines?

Asked By ahmed elbarbary on 24-Feb-17 10:03 AM
Problem

When split msg variable to more lines it not give me values in lines ?
msg variable in debug give me text scanning bellow


Details

i work in windows form c# vs 2015

i using bar code reader to read qr code

bar code scanner working as USB keyboard and define as HID Drivers

if i replace msg variable with text box it working in read data and spiting

SUCCESS so that

what is the problem in splitting below code ?

text scanning :

30 General Conference of Arab Pharmaceutical Unions

UserName : khalid ramzy

Country : Saudia

Membership : part

Serial : 1014

my code

public partial class Form1 : Form
    {
        DateTime _lastKeystroke = new DateTime(0);
        List<char> _barcode = new List<char>(10);
        public Form1()
        {
            InitializeComponent();

                        
        }

                        
        private void Form1_KeyPress(object sender, KeyPressEventArgs e)
        {
            TimeSpan elapsed = (DateTime.Now - _lastKeystroke);
            if (elapsed.TotalMilliseconds > 100)
                _barcode.Clear();

                        
            // record keystroke & timestamp
            _barcode.Add(e.KeyChar);
            _lastKeystroke = DateTime.Now;

                        
            // process barcode
            if (e.KeyChar == 13 && _barcode.Count > 0)
            {

                        
                    string msg = new String(_barcode.ToArray());

                        
                string[] lines = msg.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);

                        
                if (lines.Length > 5)
                {
                    string msg1 = lines[1].Substring(lines[1].IndexOf(":") + 1);
                    label3.Text = msg1;
                    string msg2 = lines[2].Substring(lines[2].IndexOf(":") + 1);
                    label4.Text = msg2;
                    string msg3 = lines[3].Substring(lines[3].IndexOf(":") + 1);
                    label5.Text = msg3;
                    string msg4 = lines[4].Substring(lines[4].IndexOf(":") + 1);
                    label6.Text = msg4;
                    label2.Text = lines[5].Substring(lines[5].IndexOf(":") + 1);
                }
                    _barcode.Clear();
            }
        }
    }
} 
msg variable in debug have values of scanning qr code

but problem now

How to split them to lines as above ?
Robbe Morris replied to ahmed elbarbary on 24-Feb-17 10:07 AM
You are checking for lines.length > 5.  It looks to me like the lines.length should be >= 5.