Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 1
Регистрация: 13.12.2010
Сообщений: 68
1

Компоненты созданные программным путем

15.02.2011, 22:10. Показов 1947. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть 2 вопроса

во-первых

Программно создаются пикчебоксы mp[k], код следующий(он большой, поэтому только его фрагменты, мог не все выдернуть, но все работает как надо, поэтому явных ошибок не должно быть)


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 PictureBox[] pb = new PictureBox[5];
 PictureBox[] mp = new PictureBox[45];
 
    
 pb[0] = pictureBox1;
 pb[1] = pictureBox2;
 pb[2] = pictureBox3;
 pb[3] = pictureBox4;
 pb[4] = pictureBox5;
 
//допустим для первого picturebox1 On Click
  panel1.Controls.Add(mp[k]);
  mp[k].Size = new Size(100, 81);
  mp[k].Location = new Point(x, y);
  mp[k].Image = pb[0].Image;  
  k = k + 1;    
//это тоже работает. Все эти mp добавляются на панель и их может быть любое количество, в зависимости от того сколько раз щелкнуть на picturebox1. 
//Затем я хочу удалять конкретный пикчебокс mp, после того как пользователь щелкнет на него.
//так вот первый вопрос, как мне создать событие для щелчка по программно созданному пичкебоксу mp, ведь на форме его нет
//и второй вопрос как образом применить это событие для k пикчебоксов      
//и еще вопросик кода я удаляю таким образом:  panel1.Controls.Remove(mp[0])  , как сместиь после этого индексы, чтобы mp[1] стал на место mp[0]  и все остальные тоже сдвинулись на 1.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2011, 22:10
Ответы с готовыми решениями:

Шифрация кода программным путем
Можно ли как то шифровать код в онлайн режиме? Чтобы в откладках нечего не менялось. Например...

ToolStripButton: как назначить иконку программным путем?
Добрый день. Есть форма, в ней панель инструментов ToolStrip, а на панели - кнопка...

Как программным путём получить код приложения?
Доброго времени суток. У меня есть задача: создать простой класс, пару полей и методов в нем. Затем...

Не удается авторизоваться программным путем
Почему из SQL Server Menagment Studio есть доступ к серверу баз данных, а программно из Visual...

3
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
15.02.2011, 22:18 2
обработчик клика и удаление объекта
C#
1
2
3
4
5
6
7
8
            PictureBox pb = new PictureBox();
            pb.Click += new EventHandler(pb_Click);
        
 
        void pb_Click(object sender, EventArgs e)
        {
            ((PictureBox)sender).Dispose();
        }
лучше создать массив PictureBox-ов
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int scetchik=0;
 
PictureBox[] pb_mas= new PictureBox [0];
потом там где создаешь picturebox пишешь
Array.Resize(ref pb_mas,pb_mas.Length+1);
stcetchik++;
PictureBox pb = new PictureBox();
....
pb_mas[pb_mas.Length-1]=pb;
pb.Tag=scetchik;
 
затем в методе обработки клика пиши
for(int i=(int)(((PictureBox)sender).Tag);i<pb_mas.Length;i++)
 pb_mas[i]=pb_mas[i+1];
Array.Resize(ref pb_mas,pb_mas.Length-1);
0
15 / 15 / 2
Регистрация: 24.07.2009
Сообщений: 59
15.02.2011, 22:33 3
//и еще вопросик кода я удаляю таким образом: panel1.Controls.Remove(mp[0]) , как сместиь после этого индексы, чтобы mp[1] стал на место mp[0] и все остальные тоже сдвинулись на 1.
C#
1
for(i=0; i<mp.Length-1; i ++) mp[i] = mp[i+1]
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
15.02.2011, 22:35 4
еще в цикле забыл изменять значения Tag:
C#
1
2
3
4
5
for(int i=(int)(((PictureBox)sender).Tag);i<pb_mas.Length;i++)
{ 
    pb_mas[i]=pb_mas[i+1];
    pb_mas[i].Tag=(int)(pb_mas[i].Tag)-1;
}
и еще переменную счетчик (stcetchik++ увеличивай после присваивания ее значения свойству Tag
нужны пояснения обращайся потому что на быструю руку получилось корявенько
0
15.02.2011, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2011, 22:35
Помогаю со студенческими работами здесь

Архивирование программным путем C++. Чем?
Вот в чем вопрос, как реализовать архивирование? Библиотеки вроде 7-zip плохо документированы, если...

Добавление кнопок программным путем.
Народ , можно ли добавлять кнопки программым путём (было две , а стало 3) ????

Связь таблиц программным путем
Выбираю при запуске созданную базу данных, после чего выходит ошибка

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


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

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