所以这是我的情况。我正在设计一个程序,当用户单击某个Button时,需要在Canvas上实时创建新的Image对象。由于我不确切知道任何给定用户将创建多少个所述图像,因此我无法在代码中为每个用户分配名称。图像需要命名为“Image0”,“Image1”,“Image2”等,具体取决于页面上已存在的图像数量。有点像Visual Studio本身的工作方式,每次将控件放到设计视图上时,它会自动在控件的名称后附加一个数字。
有没有人有能够执行此功能的代码段?
答案 0 :(得分:2)
您不必明确命名所有控件。只需将它们添加到画布“控件”列表中即可。
使用单个按钮和flowLayoutPanel创建一个Windows应用程序。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
int i = 1;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var button = new Button { Text = string.Format("Button {0}", i) };
button.Click += new EventHandler(button_Click);
flowLayoutPanel1.Controls.Add(button);
i += 1;
}
void button_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
button.Text = " clicked!";
}
}
}
答案 1 :(得分:0)
我对你的问题没有直接的答案,但从它的声音来看,我可能是错的,因为我不知道你想要做什么,你是从新手看到的问题程序员的观点。您可能需要考虑使用某种集合(可能是列表)并动态添加图像对象。如果需要与每个对象关联的字符串名称,可以考虑类型为Dictionary<string,Image>