我正在尝试制作一款战舰游戏,其中游戏场按钮全部以字母A
开头,然后以数字开头。现在,我想算出数字,但仍然能够执行基本的按钮功能,例如BackgroundImage
。
我现在正在做的只是创建一个字符串,该字符串将A
与我从函数收到的数字相加。
string btnr = "A";
btnr = btnr + Convert.ToString(nr);
string btnr = "A";
btnr = btnr + Convert.ToString(nr);
btnr.BackgroundImage = Image.FromFile(@"T:\E\_AUSTAUSCH\Com.Menu_OpenSurce\Battleship\Bilder\ACC_5_W.png");
这应该使用“ nr” xx更改按钮的背景图片,但是我已经收到一条错误消息,提示:
错误3“字符串”不包含“ BackgroundImage”的定义,也没有 扩展方法“ BackgroundImage”可以找到并接受第一个 类型为“字符串”的参数。 (是否没有使用指令或汇编 参考?)
答案 0 :(得分:0)
您将获得按钮名称。但是您需要引用按钮对象。为此,您可以使用控件属性按名称选择按钮:
请注意,此示例假定按钮存在并且控件的类型为Button。更新:还假定按钮是表单的中间子元素
var button = (Button)Controls[btnr];
button.BackgroundImage =
Image.FromFile(@"T:\E\_AUSTAUSCH\Com.Menu_OpenSurce\Battleship\Bilder\ACC_5_W.png");
答案 1 :(得分:0)
假设使用WinForms,则无论嵌套的深度如何,都可以使用Controls.Find来获取对Button的引用:
string btnName = "A" + nr.ToString();
Control ctl = this.Controls.Find(btnName, true).FirstOrDefault();
if (ctl != null && ctl is Button)
{
Button btn = (Button)ctl;
btn.BackgroundImage = Image.FromFile(@"T:\E\_AUSTAUSCH\Com.Menu_OpenSurce\Battleship\Bilder\ACC_5_W.png");
}