0

1) ac# ユーザー コントロールを開発します。そのコントロールには、ボタンがあります。ユーザーが実行時にボタンをクリックすると、新しいコントロール (pictureBox など) が前の pictureBox の隣に作成されます。

私はそのようにしました:

PictureBox pb = new PictureBox();
pb.Location = new Point(oldPb.X, oldPb.Y + 100);
pb.Size = oldPb.Size;
Controls.Add(pb);

問題は、作成されたすべてのアイテムを管理できるようにしたいということです。たとえば、pictureBoxes のインデックスを作成し、ユーザーから番号を取得して、必要な photoBox の写真を変更したいと考えています。例えば:

photoBox3.Image = .......

どうすればいいですか?

2) ユーザーがこれらのフォトボックスのいずれかをクリックしたことを認識し、選択したフォトボックスに対してアクションを実行できるようにしたいと考えています。どうやってやるの?

ありがとう

4

2 に答える 2

1
List<PictureBox> pictureBoxes = new List<PictureBox>();

for (int i = 0; i < 10; i++)
{
    PictureBox pb = new PictureBox();
    pb.Location = new Point(.....);
    pb.Size = ......;
    pb.Click += pb_Click;
    Controls.Add(pb);
    pictureBoxes.Add(pb);
}

pictureBoxes[3].Image=..... //Use like this

void pb_Click(object sender, EventArgs e)
{
    PictureBox pb = sender as PictureBox;
    //Do work
}
于 2012-10-14T12:17:41.850 に答える
0

PictureBoxのプロパティを使用して、Tagある種のインデックスを格納できます。

次に、すべての PictureBoxes をクリック イベントに応答させることができます。

pb.Click += new EventHandler(picturebox_Click);

そこのタグを確認してください

private void picturebox_Click(object sender, EventArgs e)
{
   PictureBox pb = sender as PictureBox;
   if (pb != null)
   {
     string s = pb.Tag
   }
}
于 2012-10-14T12:18:03.740 に答える