C# 用C语言将面板转换为Imagelist#

C# 用C语言将面板转换为Imagelist#,c#,C#,您好,朋友们,我想创建面板的新位图图像,并将其存储在imagelist中。当面板中的控件发生更改时,我想将具有不同名称的图像添加到图像列表中,下面是我的代码 private void button5_Click(object sender, EventArgs e) { var listViewItem = listView2.Items.Add(label1.Text); Bitmap bm = new Bitmap(panel3.Size.Width,

您好,朋友们,我想创建面板的新位图图像,并将其存储在imagelist中。当面板中的控件发生更改时,我想将具有不同名称的图像添加到图像列表中,下面是我的代码

private void button5_Click(object sender, EventArgs e)
{         
     var listViewItem = listView2.Items.Add(label1.Text);

     Bitmap bm = new Bitmap(panel3.Size.Width, panel3.Size.Height);
     panel3.Refresh();
     panel3.DrawToBitmap(bm, new Rectangle(0, 0, panel3.Size.Width, panel3.Size.Height));

     imageList1.Images.Add("1", bm);
     listViewItem.ImageKey = "1";           
}

每次添加变量时,都应该保留一个变量来确定名称

此示例在类级别(
nextImageNumber
)保留一个变量,每次生成位图时,该变量的值都以1递增:

int nextImageNumber = 1;

private void button5_Click(object sender, EventArgs e)
{         
    var listViewItem = listView2.Items.Add(label1.Text);

    Bitmap bm = new Bitmap(panel3.Size.Width, panel3.Size.Height);
    panel3.Refresh();
    panel3.DrawToBitmap(bm, new Rectangle(0, 0, panel3.Size.Width, panel3.Size.Height));

    string name = nextImageNumber.ToString();
    imageList1.Images.Add(name, bm);
    listViewItem.ImageKey = name;

    nextImageNumber++;           
}

要在listview中显示面板的重复图像吗