Мне нужна небольшая помощь в этой программе. Я генерирую случайный символ с интервалом в одну секунду в этой программе, когда я впервые запускаю программу с кнопки запуска, она работает нормально и дает мне правильный вывод, но когда я нажимаю на кнопку сброса и снова запускаю программу с кнопки запуска функция случайного выбора не работает должным образом.
Например, если я добавлю 4 символа (qwer), при первом запуске программы мне будет присвоено 4 случайных числа (ewqr), но когда я нажму кнопку сброса и снова введу 4 символ (qwer) и нажмите старт, но я не получаю только 2 числа, что означает, что второй раз функция запускается только два раза вместо 4 раз.
public partial class Form1 : Form
{
private string str = "";
int sRandom;
int checkLength;
// int checkLength;
Timer mTimer = new Timer();
Random mRandom = new Random();
char[] chars;
public Form1()
{
InitializeComponent();
}
private void startbutton_Click(object sender, EventArgs e)
{
str = richTextBox1.Text;
if (richTextBox1.Text != "")
{
chars = str.ToCharArray();
InitializeTimer();
}
else
{
MessageBox.Show("Some text", "please enter the key you want to practise",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void resetbutton_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
richTextBox2.Clear();
str = "";
sRandom = 0;
checkLength = 0;
}
private void InitializeTimer()
{
mTimer.Interval = 1000;
mTimer.Enabled = true;
mTimer.Tick += new EventHandler(timer1_Tick);
}
private void timer1_Tick(object sender, EventArgs e)
{
if (checkLength <= chars.Length - 1)
{
sRandom = mRandom.Next(chars.Length);
richTextBox2.Text = chars[sRandom].ToString() + checkLength;
checkLength++;
}
else
{
mTimer.Enabled = false;
}
}
}