如何在.NET Winforms的按钮组中一次选择一个按钮

问题描述 投票:0回答:1

我创建了一个自定义button control,并希望它的行为类似于组中的RadioButtons。该按钮将被放置在同一containerpanel上的一组或同一类型的集合中(将按钮拖放到容器上)。当我单击这些按钮中的任何一个时,我需要进行以下操作:

  1. 将单击按钮的BackColor更改为预定义的颜色:Color.Cycan;

  2. 将点击按钮的选中状态从false设置为true

  3. 确保同一面板/容器上的所有其他相同类型的按钮均设置为默认设置,这些默认设置是:BackColor = Color.Gray;checked = false;

我已经尝试了以下code,但我得到了这个结果:

  1. 单击的按钮的BackColor已成功更改为Color.Cycan;

  2. 已将同一容器上相同类型的所有其他按钮的默认BackColor成功设置为默认:Color.Gray;

  3. 但是单击的按钮的checked state不会更改为true.,它仍然是false.

我在下面附加了我尝试过的代码:

可能是问题所在,或者我在哪里缺少要点?

这是Winform / Windows Forms按钮控件,我正在C#.中编程

我不想为此使用单选按钮,因为我具有自定义设计的MyButton

谢谢。

这是我尝试过的代码:] >>

//调用'ClickedButton();'点击事件。

private bool checked = false;
private void ClickedButton()
{

do(

BackColor = Color.Cycan;
checked = true;

if(Parent == null)
break;

foreach(MyButton button in Parent.Controls.OfType<MyButton>())
{

if(button == this) { continue }

else{

BackColor = Color.Gray;
checked = false;
}
}

)
while(false)
}

我制作了一个自定义按钮控件,希望它的行为类似于组中的RadioButtons。该按钮将被放置在同一容器或面板上的同一类型的组或集合中(按钮...

c# winforms button boolean do-while
1个回答
0
投票

如何使用此方法?

© www.soinside.com 2019 - 2024. All rights reserved.