【发布时间】:2013-12-26 18:27:40
【问题描述】:
谁能告诉我如何移动图片框中的元素?
它是这样的:
例如,我有元素 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);
}
}
【问题讨论】:
-
我认为你至少需要一个简单的对象来保存
X-axis、Y-axis和每个正方形的数值并选择一些适当的数据结构,也许数组会做到这一点,持有每个元素的位置。然后你可以使用另一个数据结构,我认为队列会做到,你可以保持点击(每两次点击意味着改变两个方块,然后选择清空队列或数据结构)。 -
好吧,我的想法是每次我更改任何内容时都必须创建一个新数组,如果这是您的想法并且我理解正确的话。但我仍然不知道该怎么做。我想我会做点别的。
标签: c# winforms picturebox