0

私はImが明らかな何かを見逃していると感じていますが:

私はフォームに1行の写真を持っていますが、理論的には写真は永遠に続く可能性があります。ユーザーが行のすべての写真を見ることができるように、スクロールバーが必要です。自動スクロールを有効にする必要があることはわかっていますが、有効にする方法がわかりません。誰かがそれを有効にする方法や私が欠けているものを教えてもらえますか?

それが役立つ場合、これは私が写真を生成するために使用しているコードです:

private void imagePalletToolStripMenuItem_Click(object sender, EventArgs e)
    {

        MyPalletGui.Show();

        Dictionary<string,Bitmap> MyPallet = MyImageCollection.ToDictionary();
        int xcor = -50;
        int ycor = 0;
        foreach (Bitmap curtImage in MyPallet.Values){
            PictureBox myPicBox = new PictureBox();
            xcor += 50;
            myPicBox.Location = new Point(xcor, ycor);
            myPicBox.Width = 50;
            myPicBox.Height = 50;
            myPicBox.Visible = true;
            myPicBox.Image = new Bitmap(curtImage);
            this.MyPalletGui.Controls.Add(myPicBox);
4

1 に答える 1

2

このコードはあなたが望むことを正確に実行します、それはAutoScrollでViewPortとしてフォームを使用します:

public Form1()
{
InitializeComponent();

PopulatePictures();
}

private void PopulatePictures()
{
this.AutoScroll = true;

string[] list = Directory.GetFiles(@"C:\\Users\\Public\\Pictures\\Sample Pictures", "*.jpg");
PictureBox[] picturebox= new PictureBox[list.Length];
int y = 100;
  for (int index = 0; index < picturebox.Length; index++)
  {
  picturebox[index] = new PictureBox();
  this.Controls.Add(picturebox[index]);
  picturebox[index].Location=new Point(index * 120, y);
  if(x%12 == 0)
  y = y + 150;
  picturebox[index].Size = new Size(100,120);
  picturebox[index].Image = Image.FromFile(list[index]);
  }
}
于 2012-12-03T02:41:38.277 に答える