Adding controls to panel

The section of code
                event_list_panel.Controls.Add(d_event_title[rowCount]);
                event_list_panel.Controls.Add(d_event_type[rowCount]);
                event_list_panel.Controls.Add(d_event_location[rowCount]);
                event_list_panel.Controls.Add(d_event_remove[rowCount]);
is only adding the first item in the list of four.

Why?
What am I missing?
private void mainForm_Load(object sender, EventArgs e)
        {
            int _x = 100;
            int _y = 100;
            int rowCount = 0;
            int screenWidth = (this.ClientSize.Width - (_x*2));
 
            ADODB.Recordset rs = new ADODB.Recordset();
            Connection = new ADODB.Connection();
            Connection.Open("NKTConnections", null, null, 0);
            string sql = "SELECT d.event_id, d.event_title, d.event_type, d.event_location FROM events_calendar_data d, events_calendar_datetime t where d.event_id = t.event_id ORDER BY t.event_date DESC, d.event_title;";
            rs.CursorLocation = CursorLocationEnum.adUseClient;
            rs.Open(sql, Connection, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockReadOnly, 0);
            int _recordCount = rs.RecordCount;
 
            Label[] d_event_title = new Label[_recordCount];
            Label[] d_event_type = new Label[_recordCount];
            Label[] d_event_location = new Label[_recordCount];
            Label[] d_event_remove = new Label[_recordCount];
            Button[] d_event_edit = new Button[_recordCount];
            CheckBox[] d_event_cb_remove = new CheckBox[_recordCount];
 
            while (!rs.EOF)
            {
                string event_id = rs.Fields["event_id"].Value.ToString();
                string event_title = rs.Fields["event_title"].Value.ToString();
                string event_type = rs.Fields["event_type"].Value.ToString();
                string event_location = rs.Fields["event_location"].Value.ToString();
 
                d_event_title[rowCount] = new Label();
                d_event_type[rowCount] = new Label();
                d_event_location[rowCount] = new Label();
                d_event_remove[rowCount] = new Label();
                d_event_edit[rowCount] = new Button();
                d_event_cb_remove[rowCount] = new CheckBox();
 
                d_event_title[rowCount].Font = new Font("Arial", 10, FontStyle.Bold);
                d_event_title[rowCount].Text = event_title;
                d_event_title[rowCount].Location = new System.Drawing.Point(_x, _y);
                d_event_title[rowCount].Width = screenWidth;
 
                d_event_type[rowCount].Font = new Font("Arial", 8, FontStyle.Bold);
                d_event_type[rowCount].Text = event_type;
                d_event_type[rowCount].Location = new System.Drawing.Point(_x, _y+10);
                d_event_type[rowCount].Width = screenWidth;
 
                d_event_location[rowCount].Font = new Font("Arial", 8, FontStyle.Bold);
                d_event_location[rowCount].Text = event_location;
                d_event_location[rowCount].Location = new System.Drawing.Point(_x, _y+20);
                d_event_location[rowCount].Width = screenWidth;
 
                d_event_remove[rowCount].Font = new Font("Arial", 6, FontStyle.Regular);
                d_event_remove[rowCount].Text = "Check to Remove";
                d_event_remove[rowCount].Location = new System.Drawing.Point(_x, _y+30);
                d_event_remove[rowCount].Width = screenWidth;
 
                event_list_panel.Controls.Add(d_event_title[rowCount]);
                event_list_panel.Controls.Add(d_event_type[rowCount]);
                event_list_panel.Controls.Add(d_event_location[rowCount]);
                event_list_panel.Controls.Add(d_event_remove[rowCount]);
                
                _y += 100;
                rowCount++;
                rs.MoveNext();
            }
            rs.Close();
         }

Open in new window

LVL 17
nplibAsked:
Who is Participating?
 
Jaime OlivaresConnect With a Mentor Software ArchitectCommented:
event_list_panel.Controls.AddRange(new Control[] {d_event_title[rowCount], d_event_type[rowCount],d_event_location[rowCount] });
0
 
Jaime OlivaresSoftware ArchitectCommented:
How do you know?, maybe them are present but with null string?
0
 
nplibAuthor Commented:
because I did a lot of testing to be sure.

if I do this
               
               //event_list_panel.Controls.Add(d_event_title[rowCount]);
                event_list_panel.Controls.Add(d_event_type[rowCount]);
                event_list_panel.Controls.Add(d_event_location[rowCount]);
                event_list_panel.Controls.Add(d_event_remove[rowCount]);
then the next one shows but not the following two don't show,

if I do this.

               //event_list_panel.Controls.Add(d_event_title[rowCount]);
               //event_list_panel.Controls.Add(d_event_type[rowCount]);
                event_list_panel.Controls.Add(d_event_location[rowCount]);
                event_list_panel.Controls.Add(d_event_remove[rowCount]);
then the first availble one shows but not the last, and if I comment out the first three then the last one shows, I've even reordered them to see what happens, and always the first one in the list is added but not the others.
0
 
Jaime OlivaresSoftware ArchitectCommented:
have you tried with AddRange?
0
 
nplibAuthor Commented:
I've looked into it, but I don't know enough about it, I was having trouble finding good examples with what I needed.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.