jeudi 24 novembre 2016

C# WinForm how to link a command to a dynamically made checkbox?

I am currently making a flash drive lock (it hides/unhides folders) in C# Winform. I've already ready made it the C# Console, so i have most of the commands needed. I have a dir command getting the paths to the all the folders

public static dynamic getFolder()
    {
        Dictionary<dynamic, List<dynamic>> dictionary = new Dictionary<dynamic, List<dynamic>>();

        int selector = 1;
        bool isHidden;
        foreach (string folderPath in Directory.GetDirectories(Form2.driveLetter))
        {
            List<dynamic> data = new List<dynamic>();
            string folderName = folderPath.Substring(3);
            if (folderName == "#") { continue; }
            if (folderName == "System Volume Information") { continue; }
            isHidden = Status(folderPath);

            data.Add(folderPath.Substring(3, folderPath.Length - 3));
            data.Add(isHidden);
            data.Add(folderPath);

            dictionary.Add(selector, data);
            selector++;
        }

        dictionary.Add(selector++, Vault());
        return dictionary;
    }

then I have the Dictionary piped into a different method that gets the names of the folder (and hidden state) then turns them into checked boxes; if the folder is hidden, then the box is checked, and if it isn't, then its unhidden (I will in time make this part more efficient)

private void CreateBox(Dictionary<dynamic, List<dynamic>> dictionary)
    {
        int y = 0;
        int z = 0;
        CheckBox box;
        for (int x = 1; x < dictionary.Count(); x++)
        {
            List<dynamic> folder = dictionary[x];
            box = new CheckBox();
            box.Text = folder[0];
            box.AutoSize = true;
            box.Checked = folder[1];

            if (y == 180)
            {
                box.Location = new Point(370, 39 + z);
                z += 20;
            }
            else
            {
                box.Location = new Point(198, 39 + y);
                y += 20;
            }
            this.Controls.Add(box);
            CheckBoxes.Add(box);
        }
    }
        //File.SetAttributes(folderPath, FileAttributes.Hidden);

        //File.SetAttributes(folderPath, FileAttributes.Normal);

!http://ift.tt/2ga1ipr

!http://ift.tt/2ga82Uq

How do I link a SetAttributes command to the check box, so when the box is checked, it hides the respective folder and when the box is unchecked, it unhides the folder




Aucun commentaire:

Enregistrer un commentaire