1

PictureBox と ImageList を含むユーザー コントロールの位置を設定しようとすると、画像の一部しか表示されない!? なにが問題ですか?場所については、ピクセルが使用できると思いますか?

pictureBox1.Location = new Point(10, 20);
pictureBox1.Image = imageList1.Images[3];

次に、上記で説明したような複数のユーザー コントロールを実行時に、動的な作成のように作成するにはどうすればよいのでしょうか!? ユーザーコントロールごとに異なる画像と場所を設定したい。この作成は、大きなパネルを含む別のユーザー コントロール内で行う必要があります。これを行う方法と、2 つのユーザー コントロール間で通信する方法がわかりません。これらのユーザー コントロールのメソッドとコンストラクターに値を渡すのと同じように?!

これを解決するために助けてください!ありがとう!

編集:私は今このコードを試していますが、それが機能しない理由を見つけることができませんか?

pictureBox1.Size = new System.Drawing.Size(79, 91);
pictureBox1.Location = new Point(10,10);
pictureBox1.Image = imageList1.Images[3];

まだ画像の一部しか取得できません。そして、以下のコードが機能し、画像の 100% を表示するのはなぜですか?

pictureBox1.Image = imageList1.Images[2];
4

2 に答える 2

1
PictureBox[] pics = new PictureBox[10];

        int size = 20;
        for (int i = 0; i < 10; i++)
        {
            pics[i] = new PictureBox();
            pics[i].Size = new System.Drawing.Size(size, size);
            pics[i].Location = new Point(size * 2 * i + 10, size);
            //pics[i].Image = image
            pics[i].BackColor = Color.AliceBlue;
            pics[i].Parent = this;
        }

ピクチャ ボックスの 2D 行には、ネストされた for ループを使用できます。

PictureBox[,] pics = new PictureBox[10,10];

        int size = 20;
        for (int i = 0; i < 10; i++)
        {
            for (int j = 0; j < 10; j++)
            {
                pics[i, j] = new PictureBox();
                pics[i, j].Size = new System.Drawing.Size(size, size);
                pics[i, j].Location = new Point(size * 2 * i + 10, size * 2 * j + 10);
                //pics[i,j].Image = image
                pics[i, j].BackColor = Color.AliceBlue;
                pics[i, j].Parent = this;
            }
        }
于 2012-08-15T08:59:39.330 に答える
0

PictureBoxのSizeModeプロパティを確認してください。画像の解像度をPictureBoxのサイズに合わせるには、これをStretchImageに設定する必要がある場合があります。

コントロールを動的に作成する場合は、そうです。designer.csのコードを確認するだけで、デザイン時にコントロールを設定したときに、コントロールのコードがどのように生成されるかを確認できます。

于 2012-08-15T08:52:07.260 に答える