Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242

Создание PictureBox на другой форме

02.05.2014, 18:06. Показов 3837. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как по нажатию на кнопку на первой форме, создать picture box на второй форме ?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2014, 18:06
Ответы с готовыми решениями:

Динамическое создание PictureBox при клике мышью по форме
Здравствуйте! Сегодня решил спросить. А можно сделать так чтобы при каждом нажатии мыши на форме создавался новый pictureBox и делал...

Динамическое создание контрала на другой форме
Доброго времени суток всем. Потратил несколько часов на поиски в интернете, и ничего не смог найти подходящего. Решил спросить у вас. ...

Создать PictureBox на второй форме с размерами из TextBox'ов, расположенных на первой форме
Добрый вечер, столкнулся с проблемой. У меня есть 2 TextBox'a, они находятся на первой форме. Мне нужно чтобы создавался PictureBox на...

29
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
02.05.2014, 18:38
а зачем ? не проще его прятать а по нажатию открывать (Visible=true)
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
02.05.2014, 18:42  [ТС]
Metall_Version, такой вариант не подходит
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
02.05.2014, 18:48
ну создай событие свое , и подпиши форму(2-ю) на него. , а обработчик события напиши в самой второй проге где создаешь picture .

в первой при нажатии на кнопку вызывай это событие - самый разумный вариант
1
17 / 17 / 11
Регистрация: 02.05.2014
Сообщений: 82
02.05.2014, 18:54
Кнопка на 1 форме

C#
1
2
3
4
private void button1_Click(object sender, EventArgs e)
{
     form2.createPictureBox();
}
Функция на 2 форме
C#
1
2
3
4
5
6
7
8
9
10
public void createPictureBox()
{
     PictureBox pic = new PictureBox();
     pic.Width = 100;
     pic.Height = 100;
     pic.Left = 100;
     pic.Top = 100;
     pic.BackColor = Color.Black;
     this.Controls.Add(pic);
}
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
02.05.2014, 19:00
colobaev, его лучше объявлять полем класса , а не в методе
1
17 / 17 / 11
Регистрация: 02.05.2014
Сообщений: 82
02.05.2014, 19:02
Metall_Version, не спорю, просто по быстрому наклепал, голова плохо варит на праздниках
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
02.05.2014, 20:14  [ТС]
colobaev, не, такой не подходит, там суть в том, что написанный класс нужно в переменной тоскать по всему проекту, а метод в классе и в итоге, this не напишешь, а по другому почему-то не добавлялось
0
17 / 17 / 11
Регистрация: 02.05.2014
Сообщений: 82
02.05.2014, 20:16
Статический класс сделай и таскай его
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
02.05.2014, 20:27  [ТС]
colobaev, там же тогда this не работает, разве нет ?
0
17 / 17 / 11
Регистрация: 02.05.2014
Сообщений: 82
02.05.2014, 20:28
Верно, я делал не статический
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
03.05.2014, 08:25  [ТС]
colobaev, и что же делать в случае класса ?

Добавлено через 11 часов 49 минут
upup
0
17 / 17 / 11
Регистрация: 02.05.2014
Сообщений: 82
03.05.2014, 10:56
Лучший ответ Сообщение было отмечено Fene4ka_ как решение

Решение

Я сделал сейчас вот так. До других вариантов чё то не додумал.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Class1
{
     public static PictureBox myPictureBox;
 
     public static void createBlock()
     {
         myPictureBox = new PictureBox();
         myPictureBox.Width = 100;
         myPictureBox.Height = 100;
         myPictureBox.Top = 100;
         myPictureBox.Left = 100;
         myPictureBox.BackColor = Color.Black;
     }
 
     public static void addBlock(Form frm)
     {
         frm.Controls.Add(myPictureBox);
     }
}
 
public Form1()
{
     InitializeComponent();
     frm = new Form2();
     frm.Show();
}
 
private void button1_Click(object sender, EventArgs e)
{
      Class1.createBlock();
      Class1.addBlock(form2);
}
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
03.05.2014, 11:45  [ТС]
colobaev, что за переменная form2 ?
0
17 / 17 / 11
Регистрация: 02.05.2014
Сообщений: 82
03.05.2014, 12:21
Fene4ka_, туда я кидаю экземпляр формы, на которую добавить
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
03.05.2014, 14:21  [ТС]
colobaev, сделал по вашему методу, но все равно не добавляется, приеду домой , кину код

Добавлено через 1 час 26 минут
класс
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
 public class PictureLoad
    {
        public static void CreatePicture(Form frm)
        {
            PictureBox ImageBox = new PictureBox();
            Bitmap image = new Bitmap("jacket.jpg");
            ImageBox.Image = (Image)image;
            ImageBox.Location = new System.Drawing.Point(80, 80);
            ImageBox.Size = new System.Drawing.Size(100, 100);
            frm.Controls.Add(ImageBox);
        }
    }

форма 2
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
public GameOne()
        {
            GameOne frmGameOne = new GameOne();
            PictureLoad.CreatePicture(frmGameOne);
        }
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
03.05.2014, 14:24
Fene4ka_, а где ты запускаешь вторую форму ?
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
03.05.2014, 15:13  [ТС]
Metall_Version,
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
private void label1_Click(object sender, EventArgs e)
        {
            this.Hide();
            GameOne frmGOne = new GameOne(Obj);
            frmGOne.Show();
        }


Добавлено через 4 минуты
Metall_Version, я думал конструктор второй запуститься автоматически, но такого не случилось, теперь переделал так, но выдает ошибку
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Seq Obj = null;
        GameOne frmGameOne = null;
        public GameOne()
        {
            PictureLoad.CreatePicture(frmGameOne);
        }
 
        public GameOne(Seq Obj)        
        {
            InitializeComponent();
            this.Obj = Obj;
            Obj.CreateSequence();
            frmGameOne = new GameOne();
        }

ошибка - ссылка на объект не указывает на сам объект
0
 Аватар для Metall_Version
2152 / 1289 / 516
Регистрация: 04.03.2014
Сообщений: 4,092
03.05.2014, 15:16
Fene4ka_, эм логично.. эти два объека frmGOne совершенно разные. объяви свою форму в поле

C#
1
2
3
4
5
6
7
GameOne frmGameOne;
private void label1_Click(object sender, EventArgs e)
        {
            this.Hide();
            frmGOne = new GameOne(Obj);
            frmGOne.Show();
        }
Добавлено через 53 секунды
и зачем в констуркторе объекта создаешь объект ??
C#
1
2
3
4
5
public GameOne()
        {
            GameOne frmGameOne = new GameOne();
            PictureLoad.CreatePicture(frmGameOne);
        }
1
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
03.05.2014, 15:20  [ТС]
Metall_Version, не совсем понял где именно объявить нада

Добавлено через 1 минуту
Metall_Version, я создаю в другом конструкторе, второй конструктор нада, чтобы передать класс из одной формы в другую, и в том конструкторе создаю объект, чтобы вызвать первый конструктор затем передаю этот объект в другой класс
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.05.2014, 15:20
Помогаю со студенческими работами здесь

Передать значение из одного ListView в другой, и на другой форме
Есть две формы и у них есть ListView1 и у Form1 и у Form2 Мне надо что бы выбранный элемент listview1 из Form1 копировался в listview1 в...

Z-порядок pictureBox на форме
Добрый вечер, На форме несколько pictureBox с загруженными картинками и событиями (перемещения и поворота). У каждого pictureBox было...

Движение pictureBox по форме
добрый день, хотелось бы узнать, как реализовать движение pictureBox по форме? private void button1_Click(object sender,...

Передвижение PictureBox по форме курсором
Здравствуйте. Как можно перемещать курсором picturebox по форме?

Перемещение мышкой PictureBox'а по форме
Подскажите как мне сделать,чтобы в процессе компиляции я мог при нажатии на Pickturebox перемещать ее по форме?


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru