ThisandThatorWhat Ответов: 2

Как выбрать объект и собрать его стоимость ?


У меня есть 5 picturebox, и они кликабельны, они имитируют кости, это в основном yatzy.
Желание состоит в том, чтобы щелкнуть по определенному picturebox и получить значение от этого объекта
что-то вроде: если кнопка нажата, то сохраните это значение в какой-то переменной или массиве, я полагаю...

Что я уже пробовал:

Я просто не могу понять, как использовать это ключевое слово в обработчиках событий, или это неправильный подход. Некоторая помощь была бы очень признательна !

2 Ответов

Рейтинг:
2

OriginalGriff

Когда вы помещаете изображение в PictureBox - чтобы показать, какое лицо вверх, я полагаю, - установите числовое значение в PictureBox.свойство TAG. Все элементы управления имеют тег - он доступен для хранения всего, что связано с этим конкретным экземпляром.
Если вы хотите узнать значение матрицы, посмотрите на свойство Tag и приведите его к целому числу:

if (p.Tag != null)
   {
   int dieValue = (int)p.Tag
   ...
   }


ThisandThatorWhat

Спасибо за ответ OriginalGriff.
Возможно ли иметь более одного тега на объекте, потому что у меня есть свойство tag, установленное в BorderStyle.None.Я спрашиваю, Можно ли иметь два свойства тега для одного свойства тега объекта, установленного в = BorderStyle.Нет и значение кости?

OriginalGriff

Тег может содержать все, что угодно, поэтому самый простой способ-создать класс, который имеет BorderStyle и целочисленные свойства, и установить тег на экземпляры этого класса.

(Извините, на планшете и он любит автозамену...)

Рейтинг:
2

BillWoodruff

Я бы посоветовал вам воспользоваться словарем:

// assume you have five PictureBoxes

Dictionary<PictureBox,int> Dice = new Dictionary<PictureBox,int>();

// in the Form load event:

foreach(PictureBox pb in this.Controls.OfType<PictureBox>())
{
   Dice.Add(pb, 0);
}
Затем в вашем Click Eventhandler для PictureBoxes вы можете получить значение, используя PictureBox в качестве ключа. И, случайно генерируя новые значения, и устанавливая соответствующие изображения становится легко.