更改以编程方式创建的按钮的属性
本文关键字:按钮 属性 创建 方式 编程 | 更新日期: 2023-09-27 18:37:24
我通过以下方式在应用程序中创建按钮:
List<Button> btnslist = new List<Button>();
for (int i = 0; i < nbrofbtns; i++)
{
Button newButton = new Button();
btnslist.Add(newButton);
this.Controls.Add(newButton);
newButton.Width = btnsidelength;
newButton.Height = btnsidelength;
newButton.Top = btnsidelength
* Convert.ToInt32(Math.Floor(Convert.ToDouble(i / Form2.puzzlesize)));
newButton.Left = btnsidelength
* Convert.ToInt32(
Math.Floor(Convert.ToDouble(i))
- Math.Floor((Convert.ToDouble(i))
/ (Form2.puzzlesize)) * (Form2.puzzlesize));
newButton.BackgroundImage = Lights_out_.Properties.Resources.LightsOutBlack;
newButton.Tag = (i+1).ToString();
newButton.Click += new EventHandler(Any_Button_Click);
然后我有一个何时单击任何按钮的方法。
void Any_Button_Click(object sender, EventArgs e)
{
//the variable b has all the insformation that the single button had itself.
Button b = (Button)sender;
if (b.BackgroundImage == Lights_out_.Properties.Resources.LightsOutBlack)
{
MessageBox.Show(b.Tag.ToString());
MessageBox.Show(btnslist[Convert.ToInt32(b.Tag)].BackgroundImage.ToString());
btnslist[Convert.ToInt32(b.Tag)].BackgroundImage =
Lights_out_.Properties.Resources.LightsOutWhite;
MessageBox.Show(btnslist[Convert.ToInt32(b.Tag)].BackgroundImage.ToString());
}
else
{
MessageBox.Show("b.backgroundimage != lightsoutblack. Backgroundimage = "
+ b.BackgroundImage.ToString());
}
}
如何更改实际按钮中的数据(然后单击所述按钮)?我特别想更改背景图像。我怎么能这样做??(我还需要更改代码创建的其他一些按钮的背景图像。
发送方对象是按钮:
Button b = (Button)sender;
。因此,您应该能够直接更改其属性:
b.WhateverPropsToChange = yourSetting;
PS:我认为这不是必需的,但是如果按钮没有直接更新,您可以尝试使用b.Refresh()
让它知道某些内容已更改。
您正在处理您创建的每个按钮Click
事件 - sender
Any_Button_Click
实际上是按钮被单击。
因此,只需将b.BackgroundImage
更改为您需要的任何内容即可。