C# Радиокнопка формы нажата несколько раз, пока отмечена - PullRequest
0 голосов
/ 09 июля 2020

У меня есть две радиокнопки рядом в моих формах, и одна из них генерирует случайный пароль при нажатии, что нормально, но как мне его получить, если щелкнуть еще раз (пока уже проверено), он снова запускает код, это это не проблема с моим кодом, поэтому ничего не требуется, это скорее вопрос с переключателем winforms в Visual Studio. Заранее спасибо 1010 *

Желаемый результат: случайная строка, но отличается от первой (не работает)

1 Ответ

1 голос
/ 09 июля 2020

Вы можете обрабатывать как событие Click (), так и событие CheckChanged (). Технически это создаст два пароля, но в данном случае я не думаю, что это действительно имеет значение. Переместите код генерации пароля в отдельный метод и вызовите его из обоих обработчиков событий. Также переместите свой Random на уровень класса.

Что-то вроде:

private Random random = new Random();

private void NAPOCustom_Click(object sender, EventArgs e)
{
    RandomPassword();
}

private void NAPOCustom_CheckedChanged(object sender, EventArgs e)
{
    if (NAPOCustom.Checked)
    {
        RandomPassword();
    }
}

private void RandomPassword()
{           
    string validChars = "ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*?_-";
    char[] password = validChars.ToCharArray().OrderBy(x => random.Next()).Take(12).ToArray();            
    NAPasswordE.Text = new string(password);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...