Расположение в формах - PullRequest
       0

Расположение в формах

0 голосов
/ 23 апреля 2020

В настоящее время я делаю проект для игры в нарды на Visual Studio, используя c#.

У меня есть все, кроме точного кода перемещения картинки из a в b. Я нашел нужную мне команду (.location), пробовал несколько раз, но не могу заставить ее работать.

enter image description here

Для пример на этой картинке. Я бросил два и мне нужно, чтобы переместить 2 пробела. Как бы я кодировал, что он может читать картинку-бокс (названный _2) и при щелчке он выходит из координат A 656; От 62 до B 546; 19 и не позволять ему go дальше (я планирую позволить им двигаться сначала с Dice1, а затем с Dice2).

Я предполагаю, что мне нужно написать как: (pictureboxDice1 == (Image) (Properties.Resources.ResourceManager.GetObject ("_" + 2)) {.location code)

или может Я пишу это как (pictureboxDice1 == _2) {. Код местоположения}

Заранее спасибо!

1 Ответ

0 голосов
/ 23 апреля 2020

Вы можете создать сетку из графических блоков и просто установить их содержимое с помощью красной части или черной части или без части (возможно, прозрачное изображение). Затем вы просто помещаете каждую графическую рамку в двухмерный массив, чтобы ссылаться на них по логическому расположению.

// 0 - 11 Left-to-Right top Row, 
// 11-23 Right-to-Left Bottom Row
var cells = new PictureBox[24,5]; 

// Assuming an array named `columnLocation` of `point` that has the top-left 
// position of group of cells in each of the 24 columns.
// Assuming an array named `depth` that has the depth of the cell as an `int`
for(int i=0; i < 24*5; ++i)
{
    var c = i / 5;
    var d = i % 5;
    var name = $"PictureBox{i}";
    var pictureBox = new PictureBox(name);
    pictureBox.Location = new Point(columnLocation[i/5].Y, depth[d]);
    pictureBox.Visible = true;
    cells[c,d] = pictureBox;
    Children.Add(pictureBox);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...