C# 如何在每次单击一个按钮时在两种方法之间切换?
我是C#的新手,如果你们中的一些人觉得这很容易,我很抱歉:) 我点击了这个按钮: 单击按钮时,如何在这两种方法之间切换 方法#1只需单击一次 第二次单击将用于方法#2 第三次单击将用于方法#1C# 如何在每次单击一个按钮时在两种方法之间切换?,c#,.net,C#,.net,我是C#的新手,如果你们中的一些人觉得这很容易,我很抱歉:) 我点击了这个按钮: 单击按钮时,如何在这两种方法之间切换 方法#1只需单击一次 第二次单击将用于方法#2 第三次单击将用于方法#1 等等你可以这样做: bool executeMethodOne; private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e) { executeMethodOne = !executeMethodOne;
等等你可以这样做:
bool executeMethodOne;
private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e)
{
executeMethodOne = !executeMethodOne;
var IrId = executeMethodOne ? IR_Id.IR_1 : IR_Id.IR_2;
_blManager.SendTrackerCmd(TrackerCmdType.PrimaryAVT_ActiveSensor, (float)IrId);
}
有一个名为executeMethodOne
的bool
,每次单击按钮时都会将其反转。根据它是true
还是false
可以执行第一个或第二个方法第一次单击是旧的:
private void OnButtonClickOdd(object sender, RoutedEventArgs e)
{
// Unsubscribe OnButtonClickOdd
button.Click -= OnButtonClickOdd;
// Subcribe to OnButtonClickEven
button.Click += OnButtonClickEven;
// Do your job here
}
private void OnButtonClickEven(object sender, RoutedEventArgs e)
{
// Unsubscribe OnButtonClickEven
button.Click -= OnButtonClickEven;
// Subcribe to OnButtonClickOdd
button.Click += OnButtonClickOdd;
// Do your job here
}
另一种方法:只需使用bool标志即可知道它奇数或偶数单击:
private bool odd = true;
private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e)
{
if(old)
{
// Odd click job
}
else
{
// Even click job
}
old = !old;
}
您不需要在两种方法之间切换。每次调用相同的方法,但第二个参数不同。您需要向类中添加一个成员,保持最后一个按钮状态。根据状态,您将选择正确的第二个参数值,您已将
bool
odd
命名,但在代码中,您将old
用作bool
private bool odd = true;
private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e)
{
if(old)
{
// Odd click job
}
else
{
// Even click job
}
old = !old;
}