Solved

C# - Displaying Picture Boxes in Columns

Posted on 2007-04-05
11
228 Views
Last Modified: 2010-04-15
Hi guys 'n gals,

I want to modify my code to that it displays my Picture boxes in 2 Columns, rather than 2 Rows, could somebody help me out here please? Here is the code:

private void PopulateNodeCat()
        {
            MySqlConnection conn = new MySqlConnection(connString);
            DataSet ds = new DataSet();
            conn.Open();
            MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM tblNodeCat", conn);
            adapter.Fill(ds);
            conn.Close();

            int intX = panel2.Left + 2;
            int intY = panel2.Top + 2;

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                PictureBox pb;
                pb = new PictureBox();
                pb.Name = "NodeCatPic_" + dr["UID"].ToString();
                pb.Height = 100;
                pb.Width = 100;
                pb.SizeMode = PictureBoxSizeMode.StretchImage;
                pb.Location = new Point(intX, intY);
                pb.Image = Image.FromFile("node_graphics\\" + dr["Filename"]);

                this.panel2.Controls.Add(pb);

                if (intY == panel2.Top + 2)
                {
                    intY = intY + 105;
                }
                else
                {
                    intY = panel2.Top + 2;
                    intX = intX + 105;
                }
            }
        }





Cheers!
0
Comment
Question by:Cyber-Drugs
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 5
11 Comments
 
LVL 5

Accepted Solution

by:
Yttribium earned 500 total points
ID: 18856932
                 if (intX == panel2.Left + 2)
                        {
                              intX = intX + 105;
                        }
                        else
                        {
                              intX = panel2.Left + 2;
                              intY = intY + 105;
                        }

would do what you want, with little change to your code.
0
 
LVL 4

Author Comment

by:Cyber-Drugs
ID: 18856946
Shoot!

I just noticed what I did wrong now, mixed up the X and Y...

Cheers again... You may start to notice that I panic over the simplest of things, and end up asking questions on here for them... But sometimes I do get some nice tough ones! ;o)
0
 
LVL 5

Expert Comment

by:Yttribium
ID: 18856968
Well, time pressure makes even rather easy things seem 10 times more difficult!  If you get stuck on this kind of thing, it's probably best to get up stretch your legs and write on paper.  Often the answer stares in you in the face.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 4

Author Comment

by:Cyber-Drugs
ID: 18857642
I just got home to implement the code, here is the code at present for this:


                if (intY == 2)
                {
                    intX = intX + 52;
                }
                else
                {
                    intX = 2;
                    intY = intY + 52;
                }



and it doesn't give the correct result, have I done something slightly wrong? It's displaying everything in a single row at present...
0
 
LVL 5

Expert Comment

by:Yttribium
ID: 18857731
if (intX == panel2.Left + 2)
                        {
                              intX = intX + 52;
                        }
                        else
                        {
                              intX = panel2.Left + 2;
                              intY = intY + 52;
                        }
0
 
LVL 4

Author Comment

by:Cyber-Drugs
ID: 18857775
I thought I needed to remove the panel2 part as to co-ordinates issue discussed in a previous question?

Anyway, the code you sent me just now displays only 1 of the images (so i'm guessing the others are hidden from view due to the panel?
0
 
LVL 5

Expert Comment

by:Yttribium
ID: 18857828
I was thinking the same thing, how did it creep back in??
0
 
LVL 4

Author Comment

by:Cyber-Drugs
ID: 18857842
Earlier today I was at work without my laptop, so created new code to test what you answered.

Currently I am back home with my laptop which has the original code from last night.


:o)
0
 
LVL 5

Expert Comment

by:Yttribium
ID: 18857843
                       int intX = 2;
                        int intY = 2;
//CODE....
                        if (intX == 2)
                        {
                              intX = intX + 52;
                        }
                        else
                        {
                              intX = 2;
                              intY = intY + 52;
                        }
0
 
LVL 4

Author Comment

by:Cyber-Drugs
ID: 18857874
Ok, that works, on to check the scrollbar, cheers for coming back and helping with this one. :o)
0
 
LVL 5

Expert Comment

by:Yttribium
ID: 18857891
no probs :)
0

Featured Post

[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article series is supposed to shed some light on the use of IDisposable and objects that inherit from it. In essence, a more apt title for this article would be: using (IDisposable) {}. I’m just not sure how many people would ge…
Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Suggested Courses

626 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question