C# 如何启用自动滚动?

C# 如何启用自动滚动?,c#,winforms,autoscroll,C#,Winforms,Autoscroll,我觉得我错过了一些显而易见的东西,但是: 我有一个表格中的一行图片,理论上这些图片可以永远持续下去。我需要一个滚动条,以便用户可以查看该行中的所有图片。我知道我需要启用自动滚动,但我不知道如何启用它。有人能告诉我如何启用它或我缺少的东西吗 如果有帮助,这是我用来生成图片的代码: private void imagePalletToolStripMenuItem_Click(object sender, EventArgs e) { MyPalletGui.Show();

我觉得我错过了一些显而易见的东西,但是:

我有一个表格中的一行图片,理论上这些图片可以永远持续下去。我需要一个滚动条,以便用户可以查看该行中的所有图片。我知道我需要启用自动滚动,但我不知道如何启用它。有人能告诉我如何启用它或我缺少的东西吗

如果有帮助,这是我用来生成图片的代码:

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);
private void imagePalletToolStripMenuItem\u单击(对象发送方,事件参数e)
{
MyPalletGui.Show();
Dictionary MyPallet=MyImageCollection.ToDictionary();
int xcor=-50;
int ycor=0;
foreach(MyPallet.Values中的位图图像){
PictureBox myPicBox=新PictureBox();
xcor+=50;
myPicBox.Location=新点(xcor,ycor);
myPicBox.Width=50;
myPicBox.高度=50;
myPicBox.Visible=true;
myPicBox.Image=新位图(curtImage);
this.MyPalletGui.Controls.Add(myPicBox);

此代码将完全按照您的要求执行,它使用窗体作为带有AutoScroll的视口:

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]);
  }
}
public Form1()
{
初始化组件();
大众图片();
}
私有的void PopulatePictures()
{
this.AutoScroll=true;
string[]list=Directory.GetFiles(@“C:\\Users\\Public\\Pictures\\Sample Pictures”,“*.jpg”);
PictureBox[]PictureBox=新PictureBox[list.Length];
int y=100;
对于(int index=0;index
我认为有一种自动方式,否则您需要使用。例如,创建一个PictureBox1,100 x 100并用子图片填充PictureBox1,当这些子图片超过PictureBox1的宽度时,您需要显示一个水平滚动条……我想我明白您的意思,但您能否详细说明或更好地向我展示一个示例。如果帮助任何人添加我用来生成图片的代码我们可以猜到我们想要的一切。你的确切问题是什么?这些图片在表单的图片框中吗?如果每个图片都有自己的图片框,那么你可以将表单的
AutoScroll
属性设置为True。当图片框超过默认值时,这将为你添加滚动条表单空间。如果上面的说法不正确,那么还有更多的问题。@SimonWhitehead~这正是问题所在。每张图片都在它自己的picturebox中,但我不知道如何“将表单的AutoScroll属性设置为true”好,所以我已经有了代码,可以归结为InitializeComponent();this.AutoScroll=true;@JamesThompson您还可以使用表单设计器中的“属性”窗口来设置AutoScroll