我正在尝试建立一个3路" Switch"在我的WinForms项目中。
它只为所有三个"设置"发送一个命令,但每次用户点击按钮时,应在3个不同的背景图像之间交替。我已经使用>>> for row in s.split('#'):
... k, v = row.split(':', 1)
... print(k.strip(), '=', v.strip())
...
Server = x.x.x
U = 100
P = 100
Pre = 00
Tel = xxxxxx
将其外观设置为" Button"已经在我的项目中实现了双向切换开关,但我不相信这种方法适用于3路开关。
以下是我尝试过的代码,但单击按钮时似乎没有做任何事情:
CheckBox
我尝试的另一种方法是使用开关:
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;
}
}
为case 1
后点击按钮后恢复为switch_state
每次用户点击按钮时,它都应在三个图像之间循环,无论按钮被点击多少次。
答案 0 :(得分:1)
你的第二种方法是好方法,你只需要添加:
if(switch_state > 3)
switch_state = 1;
在你的switch_state ++之后,否则它将继续递增,从而什么都不做。