0

4 つのラジオ ボタンを作成し、タグを木、ダイヤモンド、粘土、レンガに設定しました。チェックされたものを見つけて、選択したラジオ ボタンに基づいて Bitmap プロパティを設定したいと考えています。より多くのメソッドに分割する必要があるという事実は無視してください。これは、リファクタリング時に行われます。Map および Cell のプロパティ cellBgImage は null です。

 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;
            }
        }
4

2 に答える 2

0

コメントに書いているように、RB は panel1 にあります。したがって、次のように Foreach を実行する必要があります。

foreach (Control c in this.panel1.Controls)
于 2013-09-17T11:46:28.707 に答える