我正在使用c#中的Windows窗体应用程序。
首先,我在运行时创建了一个表格布局,然后在从数据库中读取后插入了图片框。现在我想在每个tablepanel cell / picturebox上编写sql查询。
首先我通过拖放插入图片框来尝试这个,我在picturebox_onclick函数中写了查询。但现在我在运行时动态创建图片框。现在我如何处理我在运行时创建的图片框的onclick功能。
private void GenerateTable(int columnCount, int rowCount)
{
//Clear out the existing controls, we are generating a new table layout
tableLayoutPanel1.Controls.Clear();
//Clear out the existing row and column styles
tableLayoutPanel1.ColumnStyles.Clear();
tableLayoutPanel1.RowStyles.Clear();
//Now we will generate the table, setting up the row and column counts first
tableLayoutPanel1.ColumnCount = columnCount;
tableLayoutPanel1.RowCount = rowCount;
for (int x = 0; x < columnCount; x++)
{
//First add a column
tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
for (int y = 0; y < rowCount; y++)
{
//Next, add a row. Only do this when once, when creating the first column
if (x == 0)
{
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
}
//Create the control, in this case we will add a button
picturebox cmd = new picturebox();
cmd.image = new bitmap("c:\\images\\abc.png");
tableLayoutPanel1.Controls.Add(cmd, x, y);
}
}
}
请建议我简单的方式,因为我是新的发展。提前谢谢。
答案 0 :(得分:3)
这应该为你做。
PictureBox cmd = new PictureBox();
cmd.Click += cmd_Click;
然后有一个新功能来处理点击。
void cmd_Click(object sender, EventArgs e)
{
throw new NotImplementedException();
}
要根据ClickBox的内容执行独特的操作,您可能需要为PictureBox提供一个可以与之相关的名称,例如行号或行的唯一ID。
PictureBox cmd = new PictureBox();
cmd.Click += cmd_Click;
cmd.Name = y.ToString();
void cmd_Click(object sender, EventArgs e)
{
string RowID = ((PictureBox)sender).Name;
}