我如何才能使一键点击事件在3种情况下像开关一样运行
本文关键字:开关 情况下 运行 一样 3种 一键 事件 | 更新日期: 2023-09-27 18:21:45
按钮点击事件执行此方法:
public void Console(List<Keys> keys)
{
start = DateTime.Now;
progressBar1.Maximum = 1;
progressBar1.Step = 1;
progressBar1.Value = 0;
DoRequest(ScreenshotRequest.DannysCommands.NormalOperation);
DoRequest(ScreenshotRequest.DannysCommands.Displayoverlays);
DoRequest(ScreenshotRequest.DannysCommands.Dontdisplayoverlays);
}
我想第一次点击只调用这个:
DoRequest(ScreenshotRequest.DannysCommands.NormalOperation);
第二次点击应该只调用这个:
DoRequest(ScreenshotRequest.DannysCommands.Displayoverlays);
第三次点击应该只调用这一行:
DoRequest(ScreenshotRequest.DannysCommands.Dontdisplayoverlays);
如果我第四次点击,应该会从第一次通话开始。订单总是:
DoRequest(ScreenshotRequest.DannysCommands.NormalOperation);
DoRequest(ScreenshotRequest.DannysCommands.Displayoverlays);
DoRequest(ScreenshotRequest.DannysCommands.Dontdisplayoverlays);
所以第四次点击应该叫这行:
DoRequest(ScreenshotRequest.DannysCommands.NormalOperation);
等等。
您可以使用计数器。在类中定义一个私有的int全局变量。
private int count = 0 ;
编辑你的方法如下:
public void Console(List<Keys> keys)
{
if(count == 0)
{
// first condition
count++;
}
else if(count == 1)
{
// second condition
count++;
}
else
{
count = 0;
// third condition
}
}
此外,您还可以使用switch-case语句,而不是嵌套的if语句。
只需创建类似"int command=0"的字段,该字段可以是0、1或2。
public void Console(List<Keys> keys)
{
start = DateTime.Now;
progressBar1.Maximum = 1;
progressBar1.Step = 1;
progressBar1.Value = 0;
if(command == 0)
DoRequest(ScreenshotRequest.DannysCommands.NormalOperation);
if(command == 1)
DoRequest(ScreenshotRequest.DannysCommands.Displayoverlays);
if(command == 2)
DoRequest(ScreenshotRequest.DannysCommands.Dontdisplayoverlays);
/* here can be switch instead of if */
command++;
command = command % 3;
}