我有这个创建按钮的方法:
Button[] CreatingButtons(int n, List<string> names)
{
Button[] Buttons = new Button[n];
int horizontal = 180; int vertical = 5;
int Height = 33; int Width = 350 / Buttons.Length;
for (int i = 0; i < Buttons.Length; i++)
{
Buttons[i] = new Button();
Buttons[i].Height = Height;
Buttons[i].Width = Width;
this.Controls.Add(Buttons[i]);
Buttons[i].Text = names[i];
Buttons[i].TextAlign = ContentAlignment.MiddleCenter;
Buttons[i].Location = new Point(horizontal, vertical);
horizontal += Buttons[i].Width;
Buttons[i].Click += (o, k) =>
{
};
}
return Buttons;
}
正如您所见,click事件仍为空。我还有FlowDirectionPanel
,称为textPanel
。
我需要点击事件才能在此面板中显示一些文字,还有一些图像会显示不同的内容。我怎样才能做到这一点 ?我之前从未使用过面板
答案 0 :(得分:0)
您不清楚自己想要在面板中显示什么,但只需将TextBox
和PictureBox
放置在面板上并更改其Text
和Image
属性。
List<string> textValues=new List<string> {"A","B",...}; //Add your different values to the list
List<Image> imgValues=new List<string> {image1,image2,...}; //Add your different images to the list
Buttons[i].Click += (o, k) =>
{
textBox1.Text= textValues[i];
pictureBox1.Image= imgValues[i];
};
答案 1 :(得分:0)
根据评论,您创建了四个不同的按钮阵列,因此最好使用类和属性而不是像
这样的按钮数组你必须声明一个类
internal class ButtonsDetails
{
public string Text { get; set; }
public Image imgsource { get; set; }
}
并且您的按钮生成方法应为
private static void GenerateButton(List<ButtonsDetails> details)
{
foreach (var item in details)
{
Button b = new Button();
b.Click += (o, k) =>
{
textBox1.Text = item.Text
pictureBox1.Image = item.imgsource
};
}
}