Как определить интервал таймеров из clipboard.gettext в C # - PullRequest
0 голосов
/ 03 октября 2019

Я хочу, чтобы число, скопированное в секундах, было интервалом таймера для меня timer1. как я могу это сделать?

пользователь должен сначала скопировать автокликер, чтобы войти в режим, затем пользователь должен скопировать интервал в секундах в виде числа. Но когда я сейчас копирую авто кликер, он говорит, что скопированное не число

, это мой код

            if (clipboardText == "auto clicker")
            {
                if (int.TryParse(Clipboard.GetText(), out int x))
                {
                    timer1.Interval = x * 1000;
                }
                //when clipboard isnt a number
                else
                {
                    notifyIcon1.Icon = SystemIcons.Exclamation;
                    notifyIcon1.BalloonTipTitle = "";
                    notifyIcon1.BalloonTipText = "No number in clipboard";
                    notifyIcon1.BalloonTipIcon = ToolTipIcon.Error;
                    notifyIcon1.ShowBalloonTip(1000);
                    return;
                }
            }

1 Ответ

1 голос
/ 03 октября 2019

Интервалы таймера указаны в миллисекундах и являются целыми числами. Clipboard.GetText возвращает строку, которая, как вы говорите, будет секундами, поэтому вы хотите сначала преобразовать строку в int, а затем умножить ее на 1000, чтобы секунды превратились в миллисекунды.

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

if(int.TryParse(Clipboard.GetText(), out int x))
  timer1.Interval = x * 1000;
else
  //whatever you want to do if the clipboard is not a number

Не забудьте запустить таймер, если это необходимо ..

Это обозначение довольно недавнее c #. Если вы получаете синтаксическую ошибку, потому что вы используете более старую версию c # (я думаю, VS2015 или более раннюю), вам придется использовать более старую форму, в которой вы объявляете выходную переменную x вне TryParse:

int x;
if(int.TryParse(Clipboard.GetText(), out x))
  timer1.Interval = x * 1000;
else
  //whatever you want to do if the clipboard is not a number
...