Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2015, 20:57   #1
dim3740
Пользователь
 
Регистрация: 27.11.2009
Сообщений: 38
По умолчанию Объекты формы как переменные

на форме несколько объектов, к примеру 3 comboBox. Как задать им имена, чтобы....

Код:
for (int i=0; i<3; i++)
     {
          comboBox+"i".Text = array[i];
     }
dim3740 вне форума Ответить с цитированием
Старый 13.02.2015, 21:04   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
for (int i=0; i<3; i++)
     {
          Controls["comboBox"+i.ToString()].Text = array[i];
     }
pu4koff вне форума Ответить с цитированием
Старый 14.02.2015, 04:50   #3
dim3740
Пользователь
 
Регистрация: 27.11.2009
Сообщений: 38
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Код:
for (int i=0; i<3; i++)
     {
          Controls["comboBox"+i.ToString()].Text = array[i];
     }
спасибо, буду знать!
Но обратно не работает((
Код:
for (int i=0; i<3; i++)
     {
          arr[i] = Controls["comboBox"+i.ToString()].SelectedIndex;
     }
поиск "программное изменение фокуса" почти ничего не дал для ответа... Где копать?

Последний раз редактировалось dim3740; 14.02.2015 в 08:28.
dim3740 вне форума Ответить с цитированием
Старый 14.02.2015, 10:29   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Обратно не работает потому что в Controls тип control, нужно просто преобразовывать в ComboBox.
(Controls[1] as ComboBox).SelectedIndex
pu4koff вне форума Ответить с цитированием
Старый 14.02.2015, 20:40   #5
dim3740
Пользователь
 
Регистрация: 27.11.2009
Сообщений: 38
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Обратно не работает потому что в Controls тип control, нужно просто преобразовывать в ComboBox.
(Controls[1] as ComboBox).SelectedIndex
Код:
 
for (int i = 0; i < 24; i++)
    {
    arr[i] = (Controls["comboBox" + i.ToString()] as ComboBox).SelectedIndex;
     }
Ссылка на объект не указывает на экземпляр объекта.

сделал так:
Код:
int i =23; 
foreach(var cb in Controls.OfType<ComboBox>())
{ 
arr[i]= cb.SelectedIndex; 
i =i-1;
}
"Каждый" выбирается почему-то с последнего... и вообще, этот метод, конечно, не красивый и потребовал удаления всех комбоксов на форме и аккуратного вновь их создания по-порядку((( Думаю, что этот способ учитывает порядок обхода при выборе.

Последний раз редактировалось dim3740; 15.02.2015 в 09:58.
dim3740 вне форума Ответить с цитированием
Старый 16.02.2015, 12:56   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

А можно было просто цикл с 1 начинать и перепроверить лишний раз имена комбобоксов.
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использовать переменные из первой формы ivt22 Общие вопросы Delphi 4 27.09.2013 14:52
В окне перемещаются объекты, отталкиваясь от стенок окна. Каждый объект имеет свой поток, перемещающий его. Встретившись, объекты ИльназВ C# (си шарп) 13 22.11.2012 19:00
Вопрос про объекты и переменные? juan666777 Общие вопросы Delphi 3 27.07.2009 22:27
Как импортировать переменные с одной формы на другую? Aster Общие вопросы Delphi 1 23.03.2009 22:52
Как сделать чтобы динамически созданные объекты оставались после закрытия формы? AHAPXUCT2007 Общие вопросы Delphi 7 28.09.2007 08:46