Link to home
Start Free TrialLog in
Avatar of Marina K
Marina K

asked on

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...
ASKER CERTIFIED SOLUTION
Avatar of Prakash Samariya
Prakash Samariya
Flag of India image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
@Marina K, Did you find the resolution?

Hope you might got some help from my answer!!
Avatar of Marina K
Marina K

ASKER

I figured it out now. This answer helped me very much. Thank you