Я пытаюсь сделать что-то редактор Tile-Map в C# с использованием графических урн (самый простой способ я мог думать, чтобы бросить плитки в форму)C# Динамическая форма Помощь
код, который создает изображение боксы:
public void Generate_Tiles(int width, int height)
{
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
System.Windows.Forms.PictureBox picturebox = new PictureBox();
picturebox.BackColor = SystemColors.ActiveCaption;
picturebox.Cursor = Cursors.Cross;
picturebox.Location = new System.Drawing.Point((x*32) + 4, (y*32) + 4);
picturebox.Name = x+y+"tile";
picturebox.Size = new System.Drawing.Size(32, 32);
picturebox.TabIndex = 0;
picturebox.TabStop = false;
picturebox.Click += new System.EventHandler(TileBox_Clicked));
map.Controls.Add(picturebox);
}
}
MessageBox.Show("Done");
}
Эта часть работы, до тех пор, как я использовать небольшое количество изображений коробок в то время (8 на 8, кажется, максимум, что он хочет показать в приличном количестве времени)
Я хочу выполнить некоторые действия, когда пользователь нажимает на указанный снимок, поэтому у меня есть click method, вот где я сталкиваюсь с проблемами, все ящики с изображениями называются ... picture-box. Насколько я могу судить, я не могу сказать, какой графический ящик пользователь нажал.
Возможно, мне понадобится переделать способ динамической формы, так как я не могу получить очень много ящиков для изображений, но я думаю, что основная проблема все равно будет присутствовать, пока я хочу, чтобы она была динамичной (что я do), не все плиточные карты будут одинакового размера.
Ive никогда не делал ничего подобного, и я искал способы переопределить событие onclick ..., которое я не смог найти, и я не смог найти хороший мозаичный движок, который обновлен до использования (за исключением XNA, но это немного над вершиной для простого редактора плитки, я думаю)
Im, вероятно, идет в противоположном направлении, чем то, что мне нужно делать.
...и, ради полноты, вы, вероятно, захотите убедиться, что ваш кастинг работает, проверяя mull после этого шага - вы можете случайно связать событие Click другого объекта с этим методом (хотя это может быть только я, который делает такие вещи ;)) ... – ZombieSheep
@ZombieSheep Да; проверка на нуль будет ожидаться ... отредактировано для «полноты»;) –
> _> Наверное, я забыл, что имя объекта, являющегося PictureBox, не имеет значения, если объект, являющийся отправителем, относится конкретно к объекту, который мне нужен, что i THOUGHT, заключалось в том, что попытка изменить 1 picturebox через отправителя изменила бы их все, но теперь, когда я думаю об этом, у всех их есть уникальные указатели ... – RyanTimmons91