Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
1

Как объявить переменную с именем, взятой из другой переменной

09.03.2012, 00:27. Показов 5104. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как объявить переменную с именем взятой из другой переменной ?

задача следуящая:

C#
1
2
3
4
5
private void pictureBox1_Click(object sender, EventArgs e)
        {
            
            PictureBox pbox = new PictureBox();
        }

нада чтоб при клике на картинку создавалася ещё одна картинка с именем сложенным из 2 частей:

C#
1
2
3
4
5
6
7
        int a = 0;
        private void pictureBox1_Click(object sender, EventArgs e)
        {
            a = a + 1;
            string pp = "name" + a.ToString();
            PictureBox pp = new PictureBox();
        }
но так не работает, выдаёт ошибку что переменная уже использована.

но мне не надо создавать её, мне надо взять название для новой переменной изнеё
как это сделать.

помогите плиз..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2012, 00:27
Ответы с готовыми решениями:

Как объявить переменную, имя которой находится в другой переменной
В переменной X находится имя другой переменной D. Требуется объявить эту переменную как тип...

Создать переменную с именем числового значения другой переменной
Здравствуйте. Вроде задача простая, но не получается. Есть переменные в рабочей области Матлаб. ...

Объявить переменную с именем, заданным в строке
Подскажите пожалуйста, как объявить переменную (например типа int) с именем, заданным в строке? ...

Как объявить переменную, доступную не то, что в другой форме, а в другом exe
Всем привет. Я умею объявлять глобальные переменные внутри одного exe. Тоесть если в нем есть...

7
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
09.03.2012, 02:02 2
Так в C# не делают.
Лучше использовать один из следующих способов:
1. Массив.
C#
1
PictureBox[] pbs = new PictureBox[5];
2. Использовать ArrayList:
C#
1
2
ArrayList pbs = new ArrayList();
pbs.Add(new PictureBox());
3. А лучше список:
C#
1
2
List<PictureBox> pbs = new List<PictureBox>();
pbs.Add(new PictureBox());
Такая система, о которой Вы говорите, как правило, используется лишь в некоторых скриптовых, интерпретируемых языках, вроде php. В C# такое, вроде, можно сделать через отражение (Reflection), но это медленно довольно и не нужно.
Используйте способы, перечисленные выше. Только не забудьте подключить необходимые пространства имён, иначе может ругаться на неизвестные типы.
2
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 02:06  [ТС] 3
FutureCome, нельзяле чуть чуть поподробнее, с фрагментом кода, ато немного непонятно...
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
09.03.2012, 02:16 4
Объясните: Для чего вам это нужно? Я не знаю, что Вам нужно, поэтому не могу дать хороший пример.
Эти новые PictureBox тоже должны на форме располагаться?
1
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 10:06  [ТС] 5
Цитата Сообщение от FutureCome Посмотреть сообщение
Объясните: Для чего вам это нужно? Я не знаю, что Вам нужно, поэтому не могу дать хороший пример.
Эти новые PictureBox тоже должны на форме располагаться?

смысл следующий, вверху имеем ряд картинок, при нажатии на любую из них в указанных координатах должнна создаватся новая, далее новую можно перетащить мышкой, нажать на картинку в верху, и опять в этих координатах создастся новая картинка, а старая остаётся так куда перетащили, имена дубликатов 1 картинки желатнльно занести в масв какой нибудь, 2 картинки во 2 масив, для последующей работы с ними.

я относительно не давно начал изучать с# так что прошу пример, зарание спасибо
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.03.2012, 10:24 6
То что ты пытаешься делать - это динамическое изменение кода. Оно конечно реализуемо, но это сложно и в данном случае не оправдано. В твоем случае лучше контролу дать нужное имя, по которому ты его всегда сможешь найти.
C#
1
2
3
4
5
6
7
private void pictureBox1_Click(object sender, EventArgs e)
        {
            a = a + 1;
            string ppName = "name" + a.ToString();
            PictureBox pp = new PictureBox();
            pp.Name = ppName;
        }
или так
C#
1
2
3
4
5
private void pictureBox1_Click(object sender, EventArgs e)
        {
            PictureBox pp = new PictureBox();
            pp.Name = "name" + a++.ToString();
        }
Добавлено через 1 минуту
Подробнее про динамическое создание контролов и доступ к ним тут Ответы на 7 самых частых вопросов по WinForms
2
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 10:51  [ТС] 7
ааа, как сам не додумался )))), огромное спасибо

Добавлено через 8 минут
а как теперь можно взять название из переменной ppName, чтобы в последствии изменять свойства обекта ?
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.03.2012, 10:52 8
cat000000, читай ссылку
1
09.03.2012, 10:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2012, 10:52
Помогаю со студенческими работами здесь

Как создать переменную с именем, взятым из строковой переменной?
Здравствуйте! Пожалуйста подскажите, как в цикле for создать 24 числовых массива с именами,...

Ошибка при попытке объявить переменную int с именем y1
Здравствуйте, сегодня у меня в коде появилась ошибка которая ввела меня в заблуждение, при попытке...

Как объявить переменную что бы ее можно было передавать из одного обработчика событий в другой
как объявить переменную что бы ее можно было передавать из одного обработчика событий в другой...

Объявить переменную логического типа с именем check и присвойте ей значение “истина”
Объявите переменную логического типа с именем check и присвойте ей значение “истина”. Как будет...

Объявить переменную через значение другой
у нас например есть переменная: string first = &quot;gg wp&quot;; int //и название будет равно значению...

Как преобразовать переменную в тип другой переменной
есть две переменные int a = 123456 object b; нужно преобразовать b в тип a ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru