gpt4 book ai didi

c# - 如何使用for循环更新按钮的属性以减少代码重复

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:57 27 4
gpt4 key购买 nike

我有三个切换按钮:b1、b2、b3,我将它们放在一个数组中,如下所示:

ToggleButton[] btnArray = new ToggleButton[] {b1, b2, b3};

如果单击 b1,b1.FontWeight = FontWeights.Bold,并且 b2 & b3 等于 Normal。如果单击 b2,b2.FontWeight = FontWeights.Bold,并且 b1 & b3 等于 Normal。如果单击 b3,b3.FontWeight = FontWeights.Bold,并且 b1 & b2 等于 Normal。

b1   b2   b3
O X X
X O X
X X O

我知道更新每个切换按钮的最简单方法是一一列出,但这会使我的代码看起来很重复。我还有其他切换按钮的属性需要同时更新。那么,如何使用 for 循环来减少重复呢?或者还有其他更好的方法吗?

最佳答案

这是我的建议:

ToggleButton[] btnArray = new ToggleButton[] {b1, b2, b3};

public SwitchButton(int index)
{
foreach(var btn in btnArray)
{
// Set all buttons deactive (no hover)
btn.Color = deactiveColor; // Example
}

// Set specified (by index) btn active (hover)
var btn = btnArray[index];
btn.Color = activeColor; // Example
}

这应该非常简单易读:)

针对您的请求进行更新:在此代码中,您应该在 foreach 中设置非事件按钮属性,这将使所有按钮成为非事件/未选择样式。稍后只需更改请求的(按索引)按钮的属性事件样式。我随机使用了 Color 属性(可能不存在)。您需要为您的样式更改所需的属性。

另一个更新(建议):您可以使用类似 Akansha's 的点击事件轻松实现它但我应该建议您使用 (ToggleButton)sender 而不是 sender as ToggleButton 因为它更快 ( go here )。您也可能想使用 lambda而不是方法。

关于c# - 如何使用for循环更新按钮的属性以减少代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31472058/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com