Хорошо, вот моя проблема. Когда я проверяю флажок cbPause
(cbPause = true
), тогда мой счет начинается 1
, а не 0
. Счетчик называется tickCount, и если я положу tickCount
внутри if (cbPause.Checked == true)
. Если я поставлю его как конец моего метода Interval, он также начинается с 1, а не с 0. Где я должен разместить инкрементную переменную в моей ситуации, чтобы она начиналась с 0? У меня где-то должно быть tickCount++;
, но я не знаю где.
PS. tickCount используется, чтобы увидеть, какую строку я должен набрать. Он начинается с 0, поэтому я набираю строку 0 из ListBox.
Это основной таймер, отсчитывающий время между каждым введенным сообщением:
private void Interval(object sender, EventArgs e)
{
if (cbPause.Checked == true)
{
randomLine = random.Next(lbMessage.Items.Count);
tmrSpace.Enabled = true;
}
else
{
if (cbRandomLine.Checked == true)
{
SendKeys.Send(lbMessage.Items[random.Next(lbMessage.Items.Count)].ToString() + "{enter}");
}
else
{
if (tickCount < lbMessage.Items.Count)
{
SendKeys.Send(lbMessage.Items[tickCount].ToString() + "{enter}");
if (tickCount == lbMessage.Items.Count) tickCount = 0;
tickCount++;
}
}
}
SetInterval();
}
Этот метод является вторым таймером, который позволяет мне печатать как пишущая машинка, которая печатает строку с небольшими промежутками времени между каждым символом.
private void Space(object sender, EventArgs e)
{
if (cbRandomLine.Checked == true)
{
SendKeys.Send(lbMessage.Items[randomLine].ToString().Substring(currentChar++, 1));
if (currentChar == lbMessage.Items[randomLine].ToString().Length)
{
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
}
else
{
if (tickCount < lbMessage.Items.Count)
{
SendKeys.Send(lbMessage.Items[tickCount].ToString().Substring(currentChar++, 1));
if (currentChar == lbMessage.Items[tickCount].ToString().Length)
{
SendKeys.Send("{enter}");
tmrSpace.Enabled = false;
currentChar = 0;
}
}
}
tmrSpace.Interval = random.Next(50, 100);
}
Любые советы высоко ценятся. Заранее спасибо.