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

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

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

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

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

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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2012, 00:27
Ответы с готовыми решениями:

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

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

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

7
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
09.03.2012, 02:02
Так в 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  [ТС]
FutureCome, нельзяле чуть чуть поподробнее, с фрагментом кода, ато немного непонятно...
0
107 / 107 / 9
Регистрация: 19.12.2010
Сообщений: 417
09.03.2012, 02:16
Объясните: Для чего вам это нужно? Я не знаю, что Вам нужно, поэтому не могу дать хороший пример.
Эти новые PictureBox тоже должны на форме располагаться?
1
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 10:06  [ТС]
Цитата Сообщение от FutureCome Посмотреть сообщение
Объясните: Для чего вам это нужно? Я не знаю, что Вам нужно, поэтому не могу дать хороший пример.
Эти новые PictureBox тоже должны на форме располагаться?

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

я относительно не давно начал изучать с# так что прошу пример, зарание спасибо
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.03.2012, 10:24
То что ты пытаешься делать - это динамическое изменение кода. Оно конечно реализуемо, но это сложно и в данном случае не оправдано. В твоем случае лучше контролу дать нужное имя, по которому ты его всегда сможешь найти.
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  [ТС]
ааа, как сам не додумался )))), огромное спасибо

Добавлено через 8 минут
а как теперь можно взять название из переменной ppName, чтобы в последствии изменять свойства обекта ?
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.03.2012, 10:52
cat000000, читай ссылку
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2012, 10:52
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru