如何计算带有变量的按钮的名称

时间:2019-06-05 13:53:08

标签: c#

我正在尝试制作一款战舰游戏,其中游戏场按钮全部以字母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”可以找到并接受第一个   类型为“字符串”的参数。 (是否没有使用指令或汇编   参考?)

2 个答案:

答案 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");
}