正在选中单选按钮
本文关键字:单选按钮 | 更新日期: 2023-09-27 18:31:37
我制作了 4 个单选按钮,并将它们的标签设置为木材、钻石、粘土和砖块。我想找到选中的那个并根据所选单选按钮设置位图属性。忽略它应该拆分为更多方法的事实,这将在我重构时完成。地图和单元格中的属性 cellBgImage 为空。
void setCellBgImage()
{
string cellBgImage = "";
foreach (Control c in myMap.myForm.Controls)
{
if (c is RadioButton)
{
RadioButton radio = c as RadioButton;
if (radio.Checked)
{
cellBgImage = radio.Tag.ToString();
}
}
}
switch (cellBgImage)
{
case "wood":
myMap.cellBgImage = (Bitmap)Bitmap.FromFile("Images/wood.png");
break;
case "diamond":
myMap.cellBgImage = (Bitmap)Bitmap.FromFile("Images/diamond.png");
break;
case "clay":
myMap.cellBgImage = (Bitmap)Bitmap.FromFile("Images/clay.png");
break;
case "brick":
myMap.cellBgImage = (Bitmap)Bitmap.FromFile("Images/brick.png");
break;
}
foreach (Cell cell in myMap.myCells)
{
cell.myBgImage = myMap.cellBgImage;
}
}
向交换机添加一个默认大小写,这样当它们都没有被选中时,你仍然可以在myMap.cellBgImage中获得一个值。
default:
myMap.cellBgImage = (Bitmap)Bitmap.FromFile("Images/brick.png");
break;
当您在评论中写下时,您的 RB 在 panel1 中。 所以你应该像这样做 Foreach:
foreach (Control c in this.panel1.Controls)