Ich habe ein neues Formular mit einigen Checkboxen hinzugefügt. Wenn die Datei settings.txt erstellt wird, wird standardmäßig nichts darauf geschrieben. Also ich bin immer einige Fehler, da die Variablenwerte enthalten nur ein Element/Index so die LinieWie kann ich alle Kontrollkästchen standardmäßig deaktivieren?
checkBox2.Checked = Convert.ToBoolean(Convert.ToInt32(values[1]));
aus gebundener Index Ausnahme geben wird, und auch die Linie
checkBox1.Checked = Convert.ToBoolean(Convert.ToInt32(values[0]));
Was ich will Wenn die Datei "settings.txt" leer ist, setzen Sie alle Kontrollkästchen auf "false" (nicht angehakt) und schreiben Sie auch in die Datei "settings.txt" die Werte der einzelnen Kontrollkästchen als "false"/"unchecked".
Das Problem ist, ich schreibe in die Datei die Werte nur für den Fall.
Ich brauche es auch im Konstruktor öffentlichen OptionsMenuForm()
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
namespace Test
{
public partial class OptionsMenuForm : Form
{
string settingsFile = Path.GetDirectoryName(Application.LocalUserAppDataPath)
+ "\\settings" + "\\settings.txt";
public OptionsMenuForm()
{
InitializeComponent();
string[] values = System.IO.File.ReadAllText(settingsFile).Split(',');
checkBox1.Checked = Convert.ToBoolean(Convert.ToInt32(values[0]));
if (Form1.files.Length == 0)
{
checkBox2.Checked = false;
checkBox2.Enabled = false;
}
else
{
checkBox2.Checked = Convert.ToBoolean(Convert.ToInt32(values[1]));
}
checkBox3.Checked = Convert.ToBoolean(Convert.ToInt32(values[2]));
checkBox4.Checked = Convert.ToBoolean(Convert.ToInt32(values[3]));
checkBox1.CheckedChanged += CheckBoxesCheckedChanged;
checkBox2.CheckedChanged += CheckBoxesCheckedChanged;
checkBox3.CheckedChanged += CheckBoxesCheckedChanged;
checkBox4.CheckedChanged += CheckBoxesCheckedChanged;
}
private void CheckBoxesCheckedChanged(object sender, EventArgs e)
{
StringBuilder sbValues = new StringBuilder();
int i = 0;
i = checkBox1.Checked ? 1 : 0;
sbValues.Append(i.ToString() + ",");
i = checkBox2.Checked ? 1 : 0;
sbValues.Append(i.ToString() + ",");
i = checkBox3.Checked ? 1 : 0;
sbValues.Append(i.ToString() + ",");
i = checkBox4.Checked ? 1 : 0;
sbValues.Append(i.ToString() + ",");
System.IO.File.WriteAllText(settingsFile, sbValues.ToString());
}
}
}
'if (values.Length == 0)' ' – TheLethalCoder
foreach (var cb in this.Controls.OfType()) { // richten Sachen Ihres Steuerelemente Eigenschaft auf false .checked. } ' –
MethodMan