Четверг, 28 Марта 2024, 13:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Программирование .NET » UPD: проблема с установкой имени элементу PictureBox (Читать последнее сообщение в теме)
UPD: проблема с установкой имени элементу PictureBox
skandverДата: Пятница, 23 Марта 2012, 00:05 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Собственно, проблема в том, что я создаю цикл for(), с условием int i <= 100 и i++, создаю стринговую переменную, кладу в неё sender(имя - pic) + i.ToString(), и не получается сделать его PictureBox'ом. Это нужно для того, чтобы задисэйблить 100 ПикчерБоксов, в одном цикле. То есть, грубо говоря, надо либо поставить его как PictureBox, либо же сменить имя PictureBox'а(иного) на string.

Сообщение отредактировал skandver - Четверг, 29 Марта 2012, 20:46
UndeadДата: Пятница, 23 Марта 2012, 00:38 | Сообщение # 2
NeoAxis User
Сейчас нет на сайте
skandver, Размыто обьяснил. Тут нет телепатов. Покажи код.

Вcем зла.
skandverДата: Пятница, 23 Марта 2012, 00:51 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Code
        private void ys1_Click(object sender, EventArgs e)
         {
             PictureBox ys = (PictureBox)sender;
             ys.Image = Properties.Resources.ship;
             ships1++;
             y_ships[x_s] = +1;
             if (ys.Tag == "")
             {
                 ys.Tag = "ship";
                 ships1++;
             }
             else
             {
                 if (ys.Tag == "ship")
                 {

                 }
             }
             string resname;
             listBox2.Items.Add(ships1);

             if (ships1 == 10)
             {
                 res_start = true;
             }
             if (res_start)
             {
                 ys.Enabled = false;
                 for (int j = 1; j <= 100; j++)
                 {
                     ship2.Name = "ys" + j.ToString();
                     ship2.Enabled = false;
                 }
                      
             }
             you_score.Text = ships1.ToString();
         }


Сообщение отредактировал skandver - Пятница, 23 Марта 2012, 00:52
UndeadДата: Пятница, 23 Марта 2012, 01:24 | Сообщение # 4
NeoAxis User
Сейчас нет на сайте
skandver, Ну т.к. ты не прокоментировал для чего у тебя переменные, то ничего толком непонятно. Вопрос конкретней поставь. Что не работает?
Могу сказать, только то, что в цикле ты 100 раз работаешь с одним и тем же объектом.


Вcем зла.
skandverДата: Пятница, 23 Марта 2012, 01:38 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Undead, у меня есть 100 pictureBox. Когда я кликаю на один из них, к переменной ships1 прибавляется единица. Когда эта переменная достигает значения 10, запускается цикл, который проверяет это значение, и блокирует все puctureBox через sender, то есть чтобы не писать все 100 боксов. Проблема в том, что я не понимаю, как это сделать(заблокировать все боксы через один объект).
StageДата: Пятница, 23 Марта 2012, 02:32 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Quote
Тут нет телепатов.

Телепат в треде. Проблему можно решить добавлением ссылок на боксы в какой-нибудь List, тогда все что тебе останется пройтись через foreach по каждому элементу и отключить. Ну, как вариант, можно заюзать рефлексию и тогда ты сможешь реализовать свою первоначальную идею.
skandverДата: Четверг, 29 Марта 2012, 20:49 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Stage, спасибо за совет.
Я нашёл странное решение. Т.к. у меня все PictureBox - в panel, я поставил его(panel) блокирование после того, как корабли достигают 10 штук в переменной.

Добавлено (29.03.2012, 20:49)
---------------------------------------------
Проблема состоит в том, что хоть этот код и правильно выдаёт имена box'ов:

Code
string resname = "res" + random_number[x].ToString();
PictureBox res = new PictureBox();
res.Name = resname.ToString();
res.Tag = "tag";
textBox1.Text += res.Name.ToString() + " ";

Но тэги ставить он напрочь отказывается. Такой же бред происходит и с другими функциями. Запихнуть все эти элементы в массив конечно можно, ноя я не знаю, будет ли это вообще работать.
Форум игроделов » Программирование » Программирование .NET » UPD: проблема с установкой имени элементу PictureBox (Читать последнее сообщение в теме)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг