namespace ZzCleaner
{
public partial class Form1 : Form
{
//private CheckedListBox FoldersToClean;
//private TextBox textBox2;
public Form1()
{
InitializeComponent();
}
//Making directories
private void ZzCleaner_Load(object sender, EventArgs e)
{
//Checking if index is really - 1, but here shows 0.
if (!string.IsNullOrEmpty(Properties.Settings.Default.FoldersToClear))
{
StringBuilder selectedItems = new StringBuilder();
StringBuilder indexOf = new StringBuilder();
foreach (object item in FoldersToClear.Items)
{
selectedItems.Append(item.ToString());
selectedItems.Append("," + FoldersToClear.Items.IndexOf(item));
}
string selectedItemsString = selectedItems.ToString();
//And here where I actually need it, it shows -1 it pops out the MessageBox 2-times
Properties.Settings.Default.FoldersToClear.Split(',')
.ToList()
.ForEach(item =>
{
try
{
var index = this.FoldersToClear.Items.IndexOf(item);
var checkbox = this.FoldersToClear.GetItemChecked(index);
FoldersToClear.SetItemChecked(index, checkbox);
}
catch (ArgumentOutOfRangeException ex)
{
MessageBox.Show(ex.Message + selectedItemsString);
}
});
}
}
private void FoldersToClean_SelectedIndexChanged_1(object sender, EventArgs e)
{
}
private void Form1_FormClosing(object sender, EventArgs e)
{
var indices = this.FoldersToClear.CheckedItems.Cast<string>().ToArray();
/*This was meant to be for test but it doesn't show me anything. Not sure if FormClosing event even works
//string storedFolders = string.Join(",", indices);
//Console.WriteLine(storedFolders); */
Properties.Settings.Default.FoldersToClear = string.Join(",", indices);
Properties.Settings.Default.Save();
}
private void removeBtn2_Click(object sender, EventArgs e) //Add
{
if (textBox2.Text == "")
{
MessageBox.Show(this, "Choose a folder to add. ");
return;
}
string folder = textBox2.Text;
textBox2.Text = "";
FoldersToClear.Items.Add(folder);
}
private void removeBtn1_Click(object sender, EventArgs e) //Remove
{
if(FoldersToClear.Items.Count != 0)
{
if(FoldersToClear.SelectedIndex != -1)
{
int folderToDelete = FoldersToClear.SelectedIndex;
FoldersToClear.Items.RemoveAt(folderToDelete);
}
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
I am buidling a windows forms app, and I ran accross a problem where it's throwing exception ArgumentOutOfRangeException, where index is -1 not valid for index, but in test case like it's above it's 0.
Also Form1_FormClosing function doesn't even work, it doesn't work in console and not even in MessageBox..
Point of it right now, it's just storing the data, so when I close it and reopen it, it contains saved data (checkboxes checked or not, and to have folders that were added).