如何实现图形化的 3 路“切换”
本文关键字:切换 图形 何实现 实现 | 更新日期: 2023-09-27 18:33:34
我正在尝试在我的WinForms项目中构建一个3路"开关"。
它只为所有三个"设置"发送一个命令,但每次用户单击按钮时,应该在 3 个不同的背景图像之间交替。我已经通过使用外观设置为"按钮"的CheckBox
在我的项目中实现了 2 路切换开关,但我相信这种方法不适用于 3 路开关。
这是我尝试过的代码,但是单击按钮时似乎没有任何作用:
private void ThreeWayButton_Click(object sender, EventArgs e)
{
if (ThreeWayButton.BackgroundImage.Equals(Properties.Resources.ThreeWay_1))
{
ThreeWayButton.BackgroundImage = Properties.Resources.ThreeWay_2;
}
else if (ThreeWayButton.BackgroundImage.Equals(Properties.Resources.ThreeWay_2))
{
ThreeWayButton.BackgroundImage = Properties.Resources.ThreeWay_3;
}
else if (ThreeWayButton.BackgroundImage.Equals(Properties.Resources.ThreeWay_3))
{
ThreeWayButton.BackgroundImage = Properties.Resources.ThreeWay_1;
}
}
我尝试的另一种方法是使用开关:
static int switch_state = 0;
//...
protected void ThreeWayButton_Click(object sender, EventArgs e)
{
switch_state++;
switch (switch_state)
{
case 1:
ThreeWayButton.BackgroundImage = Properties.Resources.ThreeWay_2;
break;
case 2:
ThreeWayButton.BackgroundImage = Properties.Resources.ThreeWay_3;
break;
case 3:
ThreeWayButton.BackgroundImage = Properties.Resources.ThreeWay_1;
break;
default:
break;
}
}
这种方法有点工作;它循环浏览三个图像,但是一旦到达最后一个图像,它就不会再次循环浏览图像。
如果第二种方法是合适的方法,我希望它在用户switch_state
case 3
时单击按钮后
case 1
每次用户单击按钮时,它都应该在三个图像之间循环,无论单击按钮多少次。
您的第二种方法是好的,您只需要添加:
if(switch_state > 3)
switch_state = 1;
就在switch_state++之后,否则它将继续递增,从而什么都不做。