Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/65: Рейтинг темы: голосов - 65, средняя оценка - 4.97
 Аватар для Sen
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 21

создание массива кнопок Visual C++ CLR

20.03.2010, 11:30. Показов 12586. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не подскажет кто как создать массив кнопок типа Button?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2010, 11:30
Ответы с готовыми решениями:

Создание и запись данных в массив String на CLR C++ visual studio 2017
Добрый день,Я недавно начал изучать с++,вначале писал в консоли, сейчас начал писать в CLR, у меня вопрос в консоли создать массив можно...

Звук и границы кнопок в C++ CLR
На днях появились вопросы, на которые очень хотелось бы получить ответы. Первый коснулся музыки. Реализована ли как-то в WinForm работа с...

Clr/ visual c++
Здравствуйте. Есть стандартная форма "main.h" с разными элементами. В ней подключаю файл с класcом в котором хочу редактировать эти...

14
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
20.03.2010, 12:09
C++
1
2
3
4
5
6
7
8
9
array<Button^>^ msv = gcnew array<Button^>(5);
for(int i = 0; i < msv->Length; i++)
{
    msv[i] = gcnew Button();
    msv[i]->Size = Drawing::Size(75, 23);
    msv[i]->Text = i.ToString();
    msv[i]->Location = System::Drawing::Point(40, 40 + 40 * i);
    Controls->Add(msv[i]);
}
2
 Аватар для Sen
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 21
20.03.2010, 14:55  [ТС]
HIMen, а двухмерный массив?
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
20.03.2010, 16:41
Sen, создается таким же образом. Но вопрос, а какая принципиальная разница одномерный или двумерный, ведь все равно эти компоненты отображаются на форме одинаково даже если это N-мерный массив
0
 Аватар для Sen
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 21
20.03.2010, 18:24  [ТС]
M128K145, меня интересовал синтаксис.
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
20.03.2010, 19:13
C++
1
array<Button^, 2>^ msv = gcnew array<Button^, 2>(5, 5);
1
 Аватар для Sen
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 21
21.03.2010, 10:55  [ТС]
пытаюсь вывести на форму массив кнопок 4 * 4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
                                array<Button^, 2>^ msv = gcnew array<Button^, 2>(4, 4);
                 int x = 0, y = 0, sizei = 4, sizej = 4;
                 for(int i = 0; i < sizei; i++)
                 {
                     for(int j = 0; j < sizej; i++)
                     {
                         msv[i][j] = gcnew Button();
                                                 msv[i][j]->Size = Drawing::Size(50, 50);
                         msv[i][j]->Text = i.ToString() + j.ToString();
                                                 msv[i][j]->Location = System::Drawing::Point(x,y);
                         x += 50;
                                                 Controls->Add(msv[i][j]);
                     }
                     x = 0;
                     int y += 50;
                 }
а компилятор выдает мне такую вот ошибочку
--------------------------------------------------------------------------
------ Построение начато: проект: NV, Конфигурация: Debug Win32 ------
Компиляция...
NV.cpp
ВНУТРЕННЯЯ ОШИБКА КОМПИЛЯТОРА в 'E:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe'
Выберите команду "Техническая поддержка" в меню "Справка" Visual C++ или
откройте справочный файл технической поддержки для получения доп. сведений
Проект : error PRJ0002 : Результат ошибки 2 возвращен из "E:\Program Files\Microsoft Visual Studio 9.0\VC\bin\cl.exe".
Журнал построения был сохранен в "file://j:\H\C\function_array\NV\NV\Debug\BuildL og.htm"
NV - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

кто знает что это может быть?
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
21.03.2010, 11:04
msv[i, j]
1
 Аватар для Sen
0 / 0 / 0
Регистрация: 07.06.2009
Сообщений: 21
26.03.2010, 12:17  [ТС]
Как создать во время выполнения обработчик события, ну например Click и назначить его определенной кнопке или группе кнопок?
Или назначить уже существующий обработчик созданному объекту или кнопке.
0
dimorph
24.10.2010, 18:02
Добрый вечер1
Проблема в конструкции msv[i][j]->Text = i.ToString() + j.ToString(). Сам сталкивался с подобной проблемой, но пока не нашёл решение! Есть мысль что необходимо писать отдельный враппер класс в котором будет использоваться конструкция String^ a. В неуправляемом класс используется конструкция gcroot<string^> a, и при его использовании возникает такая фатальная ошибка!
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 16
30.01.2013, 21:45
Цитата Сообщение от HIMen Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
array<Button^>^ msv = gcnew array<Button^>(5);
for(int i = 0; i < msv->Length; i++)
{
    msv[i] = gcnew Button();
    msv[i]->Size = Drawing::Size(75, 23);
    msv[i]->Text = i.ToString();
    msv[i]->Location = System::Drawing::Point(40, 40 + 40 * i);
    Controls->Add(msv[i]);
}
Подскажите пожалуйста, как обращаться в этому массиву из других функций. Например, этот массив объявляется в Form1_Load(...), и нужно изменить текст msv[2] из другой функции, например, Void button1_Click(...).
Пробую так:
msv[2]->Text = "123";
компилирует, но при нажатии (button1_Click) выдает ошибку: Ссылка на объект не указывает на экземпляр объекта.

Спасибо.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
30.01.2013, 22:39
Цитата Сообщение от gelidan Посмотреть сообщение
Подскажите пожалуйста, как обращаться в этому массиву из других функций. Например, этот массив объявляется в Form1_Load(...), и нужно изменить текст msv[2] из другой функции, например, Void button1_Click(...).
Пробую так:
msv[2]->Text = "123";
компилирует, но при нажатии (button1_Click) выдает ошибку: Ссылка на объект не указывает на экземпляр объекта.
Спасибо.
Объявите массив в форме, прямо среди объявлений других членов:
private: array<Button^>^ msv;

В событии (например OnLoad):
C++
1
2
3
4
5
6
7
8
9
msv = gcnew array<Button^>(5);
for(int i = 0; i < msv->Length; i++)
{
    msv[i] = gcnew Button();
    msv[i]->Size = Drawing::Size(75, 23);
    msv[i]->Text = i.ToString();
    msv[i]->Location = System::Drawing::Point(40, 40 + 40 * i);
    Controls->Add(msv[i]);
}
В любом событии следующим за событием с инициализацией обращайтесь.
1
0 / 0 / 0
Регистрация: 02.01.2013
Сообщений: 16
01.02.2013, 19:02
Спасибо огромное!
Свой код крутил по всякому, наверно причина в этом была:
Цитата Сообщение от IGPIGP Посмотреть сообщение
В любом событии следующим за событием с инициализацией обращайтесь.
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
01.02.2013, 21:57
Цитата Сообщение от gelidan Посмотреть сообщение
Спасибо огромное!
Свой код крутил по всякому, наверно причина в этом была:
Рад помочь. Однако судя по Вашему вопросу дело как раз в том, чтобы объявить массив с областью видимости: класс. Объявить нужно, так же как и в любом другом классе как поле класса, то есть в теле описания класса, ведь объявление в обработчике (Form1_Load()) видно только в нём. В этом обработчике удобно инициализировать.
0
 Аватар для Robesper3411
20 / 19 / 3
Регистрация: 20.02.2012
Сообщений: 535
Записей в блоге: 1
02.02.2013, 23:36
Создать обработчик событий
Похожая ситуация, нужно только заменить все picturebox на button.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.02.2013, 23:36
Помогаю со студенческими работами здесь

Доступ к данным в консольном приложении CLR Visual C++
Доброго времени суток. Меня интересует следующая проблема. В VS 2012 создаю консольное приложение CLR Visual C++. Подключаюсь к базе...

Не видит класс. visual c++ 2013 CLR+WinForm
Задача реализовать класс дробь на c++ с интерфейсом WinForms. Создал CLR проект и в него добавил WinForm. Ниже добавил описание своего...

Подключение mouse_event в Visual C++ CLR Windows Forms
Пишу кликер - по нажатию на кнопку &quot;Перейти в точку&quot; - нужно переместить курсор на координаты x, y и кликнуть левой клавишей мыши. Писал...

Создание функции, рисующей FillRectangle. Visual c++ /clr
Visual c++ , Windows Forms. Пытаюсь создать функцию, которая бы рисовала FillRectangle. void paintrec (int x,int y) { ...

Создание массива кнопок
В общем, хочется сделать универсальный скрипт для кнопок, чтоб при добавлении новых предметов, нужно бы было просто закинуть объект и...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru