移动图片框素材

时间:2013-12-26 18:27:40

标签: c# winforms picturebox

有谁能告诉我如何移动图片框中的元素?

以下是它的样子:

例如,我有元素4 4 1 3(第一行)。我怎么能切换元素1和3?

以下是代码:

        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
            if (numbers == null) 
            {
                return;
            }
            int xMaxCoordinate = numbers.GetLength(0);
            int yMaxCoordinate = numbers.GetLength(1);

            int xVieniba = pictureBox1.Width / xMaxCoordinate; 
            int yVieniba = pictureBox1.Height / yMaxCoordinate;

            Pen _pen = new Pen(Color.White, 1F);
            Font fonts = new Font("Times New Roman", 10);
            Brush brush = new SolidBrush(Color.Black);

            for (int i = 0; i < numbers.GetLength(0); i++)
            {
                for (int j = 0; j < numbers.GetLength(1); j++)
                {
                    e.Graphics.DrawString(numbers[i, j].ToString(), fonts, brush, i * xVieniba, j * yVieniba); 
                }
            }
            for (int i = yVieniba; i < pictureBox1.Height; i += yVieniba)
            {
                e.Graphics.DrawLine(_pen, 0, i, pictureBox1.Width, i);
            }
            for (int i = xVieniba; i < pictureBox1.Width; i += xVieniba)
            {
                e.Graphics.DrawLine(_pen, i, 0, i, pictureBox1.Height);
            }

        }

1 个答案:

答案 0 :(得分:0)

我会创建一个方法来绘制接受二维数组的图片框网格,以存储坐标和任何红色方块的值。 为了更改数字(或切换两个数字),我只需修改数组并重新绘制图片框

编辑:一些更简单的方法吗?

如果您只是想玩游戏并创建一个简单的游戏,我认为根据您的需要创建尽可能多的PictureBox更容易,BackgroundColor红色和Tag属性设置为其编号(3,4,4,1等等)。

然后将它们彼此靠近创建并填充TableLayoutPanel,然后在其角落绘制每个Tag的{​​{1}}属性。

另外,您也可以使用PictureBoxLabel和特定尺寸,只需在那里写下数字,就更容易了。

之后,您可以轻松处理每个pictureBox / Label上的Autosize = False,从Tag / Text属性中获取值,也可以在点击时更改背景颜色。在第2次点击你重绘你的图片框/标签中的数字,并将颜色重置为红色,给人一种他们被切换的印象

相关问题