Solved

C# - Displaying Picture Boxes in Columns

Posted on 2007-04-05
11
214 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
  • 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
 
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
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
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

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

747 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now