Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 80
  • Last Modified:

how can i make a previous button here?

So i am making a game in visual c#...the first stage is looking through the photos that are shown in a picturebox. I have written this code so far:

namespace FaceNameGame
{
    public partial class LevelOnePartOne : Form
    {
       
        int m , piccount=0, k;
        Random rd = new Random();
        public string[] picturenames= new string[4];
        public string[] links = new string[3];
        string sourcePath = @"C:\Users\Marina\Desktop\FaceNameGame\images";
        string targetPath = @"C:\Users\Marina\Desktop\FaceNameGame\images\used";
        bool directoryexists = false;
        string[] files = Directory.GetFiles(@"C:\Users\Marina\Desktop\FaceNameGame\images\", "*.jpg", SearchOption.AllDirectories);

        public LevelOnePartOne()
        {
            InitializeComponent();
        }



        private void LevelOnePartOne_Load(object sender, EventArgs e)
        {


            ProceedBtn.Hide();
           
            PreviousBtn.Hide();

           
           

            if (!System.IO.Directory.Exists(targetPath))
            {
                System.IO.Directory.CreateDirectory(targetPath);
                directoryexists = true;

            }

            Random rand = new Random();
            string[] files = Directory.GetFiles(@"C:\Users\Marina\Desktop\FaceNameGame\images\", "*.jpg", SearchOption.AllDirectories);


             for (m = 0; m < 3; m++)
            {

               Loop:
                picturenames[m] = files[rand.Next(files.Length)];
                string name1 = picturenames[m].ToString();
                string name2 = name1.Substring(name1.LastIndexOf("\\"));
                string name3 = name2.Remove(name2.Length - 4, 4);
                string name = name3.Remove(0, 1);
                string filename = name2.TrimStart('\\');
               
               
               
                if (!IsDirectoryEmpty(targetPath))
                {


                    if (File.Exists("C:\\Users\\Marina\\Desktop\\FaceNameGame\\images\\used\\" + filename))
                    {

                        goto Loop;  
                       
                     

                    }

                }

                string sourceFile = System.IO.Path.Combine(sourcePath, filename);
                string destFile = System.IO.Path.Combine(targetPath, filename);

               

                System.IO.File.Copy(sourceFile, destFile, true);
               
            }


           

            ShowCurrentImage(0);
                k = 1;


        }

           

           
       

        private void NextBtn_Click(object sender, EventArgs e)
        {
            piccount++;

            if(piccount < 3)
            {

                if (k<3)
                {
                   
                    ShowCurrentImage(k);
                    k++;
                   
                }
               
            }    
           
            if (piccount == 2)
            {
                NextBtn.Hide();
                ProceedBtn.Show();
            }

            if (k > 0)
            {
                PreviousBtn.Show();
            }

        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {


        }

        private void PhotoTemplatePicBx_Click(object sender, EventArgs e)
        {

        }

        private void ProceedBtn_Click(object sender, EventArgs e)
        {
            LevelOnePartTwo lvltwoprttwo = new LevelOnePartTwo();
            this.Hide();
            lvltwoprttwo.Show();
        }

        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.Escape)
            {
                this.Close();

                if (directoryexists)
                {
                    Directory.Delete(targetPath, true);
                }
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }

        private void PreviousBtn_Click(object sender, EventArgs e)
        {
           

                if (k > 0 && k < 3)
                {

                    ShowCurrentImage(k);
                    k--;

                }

           

           

        }

        protected void ShowCurrentImage(int picindex)
        {

            string[] filestouse = Directory.GetFiles(@"C:\Users\Marina\Desktop\FaceNameGame\images\used\", "*.jpg", SearchOption.AllDirectories);
            pictureBox1.Load(filestouse[picindex]);
            string nameused1 = pictureBox1.ImageLocation.ToString();
            string nameused2 = nameused1.Substring(nameused1.LastIndexOf("\\"));
            string nameused3 = nameused2.Remove(nameused2.Length - 4, 4);
            string nameused = nameused3.Remove(0, 1);
            namelbl.Text = "Hello,my name is" + " " + nameused;
               

           
        }


        public bool IsDirectoryEmpty(string path)
        {
            string[] dirs = Directory.GetDirectories(path); string[] files = System.IO.Directory.GetFiles(path);
            return dirs.Length == 0 && files.Length == 0;
        }

    }
}



everything works fine except the previous button...any ideas on how i can do it? Thanks in advance for you help...
0
Marina K
Asked:
Marina K
  • 2
1 Solution
 
Prakash SamariyaIT ProfessionalCommented:
try below code! please check value of "k"
private void PreviousBtn_Click(object sender, EventArgs e)
{
            if (k > 0 && k < 3)
            {
                    k--;
                    ShowCurrentImage(k);
            }
            if (k <=0)
            {
                PreviousBtn.Hide();
            }
}

Open in new window

1
 
Prakash SamariyaIT ProfessionalCommented:
@Marina K, Did you find the resolution?

Hope you might got some help from my answer!!
0
 
Marina KAuthor Commented:
I figured it out now. This answer helped me very much. Thank you
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now