c#在鼠标悬停时,将picturebox从一个picturebox数组中向上移动

本文关键字:picturebox 一个 数组 移动 悬停 鼠标 | 更新日期: 2023-09-27 17:54:54

我在c# windows窗体上工作。我有一个显示在表单上的picturebox数组。数组的大小是13,它们都是并排的。当我点击一个图片框的时候,它会在y方向上向上移动20。生成图片框的代码。

上面声明了pb1和p1
void print_Deck(int x, int y, double[] a){
        double n;
        for (int i = 0; i < 13; i++)
        {
            pb1[i] = new PictureBox();
            // pb1[1].Image = Properties.Resources.img1;
            pb1[i].Visible = true;
            pb1[i].Location = new Point(0, 0);
            this.Size = new Size(800, 600);
            pb1[i].Size = new Size(46, 65);
            pb1[i].SizeMode = PictureBoxSizeMode.StretchImage;
            pb1[i].Location = new Point(x, y);
            n= a[i];
            im = face(n);
            pb1[i].Image = im;
            this.Controls.Add(pb1[i]);
            x = x + 20;
        }
    }

c#在鼠标悬停时,将picturebox从一个picturebox数组中向上移动

您可以尝试在Picturebox上添加Click事件,然后您可以在Click函数上尝试此代码。

您可以使用Top属性来操作位置。

Picturebox.Top -= 20; // move the picture box upward

Picturebox.Top += 20; // move the picture box downward

或者使用。location = New Point(X,Y)

Picturebox.Location = new Point(Picturebox.Location.X, Picturebox.Location.Y + 20);

下面是你如何将eventandler添加到你的图片框。

Picturebox.Click += new System.EventHandler(this.Picturebox_ClickFunction);

然后创建一个名为Picturebox_ClickFunction的函数

private void Picturebox_ClickFunction(object sender, EventArgs e)
{
     PictureBox pb1 = (PictureBox)sender; // you need to cast(convert) the sende to a picturebox object so you can access the picturebox properties
}

则可以使用我上面提供的代码

你可以试试PictureBox。带有锚属性的顶部属性或者使用PictureBox.Location.

您可以注册PictureBox的'Click'事件来调整'Margin'属性所需的量