Le formulaire de gain :
Le code :
using System;
using System.Windows.Forms;
namespace DemoApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
groupBox2.Enabled = checkBox1.Checked;
}
private void button1_Click(object sender, EventArgs e)
{
SaveSetings();
}
private void SaveSetings()
{
Properties.Settings.Default.UserName = textBox1.Text;
Properties.Settings.Default.pass = textBox2.Text;
Properties.Settings.Default.userproxy = checkBox1.Checked;
Properties.Settings.Default.proxy = textBox3.Text;
Properties.Settings.Default.proxy_port = textBox4.Text;
Properties.Settings.Default.Save();
}
//private void Form1_Load(object sender, EventArgs e)
//{
// checkBox1.Refresh();
// groupBox2.Enabled = checkBox1.Checked;
//}
}
}
Comme vous pouvez le voir dans le code, j'ai une case à cocher "Utiliser le proxy" qui, lorsqu'elle est sélectionnée, devrait activer le groupbox1 ou vice versa. Le problème est que lorsque le formulaire charge les paramètres à partir de "user.config", même si la case de contrôle n'est pas sélectionnée, le groupbox 1 est activé. Une façon de gérer cette situation est de vérifier la case de contrôle dans l'événement de chargement du formulaire, c'est-à-dire
groupBox2.Enabled = checkBox1.Checked;
y a-t-il d'autres moyens de faire cela et de rendre mon application plus dynamique ? La raison pour laquelle je pose cette question est qu'il peut y avoir des situations où plusieurs contrôles sont sur un seul formulaire, et je pense que cela deviendra confus.