Elias, c'est volontairement pour emmerder que je le fais, mais quand tu tombes sur ça :
private void btnGen_Click(object sender, EventArgs e)
{
try
{
int iCarac = Convert.ToInt32(tbxNb.Text);
if (iCarac < 1 || iCarac > 100)
{
tbxRep.Text = "";
MessageBox.Show("Veuillez entrer une valeur numérique entière, comprise entre 1 et 100.",
"Erreur de saisie",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
tbxNb.Focus();
tbxNb.Clear();
}
else
{
Random NbAleatoire = new Random();
tbxRep.Text = "";
for (int i = 0; i < iCarac; i++)
{
int iValeur = NbAleatoire.Next(83);
string strValeur = "";
TestValeur(iValeur, ref strValeur);
tbxRep.Text += strValeur;
}
}
}
catch
{
MessageBox.Show("Veuillez entrer une valeur numérique entière, comprise entre 1 et 100.",
"Erreur de saisie",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
tbxNb.Focus();
tbxNb.Clear();
}
}
private void btnCopy_Click(object sender, EventArgs e)
{
if (tbxRep.Text != "")
{
tbxRep.SelectAll();
tbxRep.Copy();
MessageBox.Show("Résultat copié dans le presse-papier avec succès !",
"Copié !",
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
else
{
MessageBox.Show("Vous devez générer un mot de passe pour pouvoir le copier !",
"Erreur de copie",
MessageBoxButtons.OK,
MessageBoxIcon.Error);
}
}
private void btnQuitter_Click(object sender, EventArgs e)
{
DialogResult dlrMessage;
dlrMessage = MessageBox.Show("Êtes-vous sûr de vouloir quitter ?",
"Fermeture",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (dlrMessage == DialogResult.Yes)
{
Close();
}
}
Ca parait utile à commenter, surtout que je pense pouvoir faire un code plus court. 
(Non, cherchez pas, il est pas complet, je veux pas flooder
)