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

Перетаскивание мышью компонента pictureBox

08.03.2012, 18:40. Показов 31643. Ответов 68
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
собственно говоря сам вопрос указан в теме: как сделать так чтобы можно было перетаскивать мышью pictureBox1 на c#

пожалуйста по подробнее сколько в нете не искал там много примеров, но до меня чото не доходит...


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

помогите плизз !!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2012, 18:40
Ответы с готовыми решениями:

Перетаскивание мышью компонента внутри pictureBox
Есть: pictureBox, на нем нарисованый прямоугольник. Нужно: при нажатии на него поменять цвет рамки, и...

Перетаскивание мышью объекта Picturebox
собственно есть код: //Создаем random для появления объектов Picturebox в случайных местах формы Random r = new...

Перетаскивание контролов мышью
Нужно по нажатию мыши на элементе перетаскивать контрол(элемент) за курсором.

68
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
09.03.2012, 12:51
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Casper-SC Посмотреть сообщение
Это да, так проблема решается. Но не ясно откуда там вообще Form1_Load берётся. Чувствую было так:
Создался проект. Видим окно, дабл клик по нему, переходим в код. Заменяем класс Form1 тем самым затирая обработчик Form1_Load. Вообще есть несколько других способов для перехода.
Так наверно и было, для справки: переход к режиму редактирования кода - F7(По умолчанию).
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2012, 12:51
Цитата Сообщение от cat000000 Посмотреть сообщение
а как заставить двигатся все создаваемые пикчербоксы ?
Создавать их методом AddNewPictureBox
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 12:58  [ТС]
Цитата Сообщение от DimanRu Посмотреть сообщение
Так наверно и было, для справки: переход к режиму редактирования кода - F7(По умолчанию).
да, спасибо, не знал про f7 , не раз возникала проблема такая, чтобы перейти в резактор приходилось по чему нибудь кликать

Добавлено через 1 минуту
Цитата Сообщение от Casper-SC Посмотреть сообщение
Создавать их методом AddNewPictureBox
это как, что надо использовать в
C#
1
2
3
4
        private void button1_Click(object sender, EventArgs e)
        {
 
        }
чтобы создать его ?

P.S я отойду на час
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2012, 12:59
Цитата Сообщение от cat000000 Посмотреть сообщение
не раз возникала проблема такая, чтобы перейти в резактор приходилось по чему нибудь кликать
Да хотя бы так:
Миниатюры
Перетаскивание мышью компонента pictureBox  
2
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2012, 13:00
Лучший ответ Сообщение было отмечено как решение

Решение

C#
1
2
3
4
        private void button1_Click(object sender, EventArgs e)
        {
              AddNewPictureBox(70, 70); 
        }
Лучше прочти сначала книжку, судя по всему ты учишься сразу на проектах и форуме. Далеко не уедешь так. Не понимать что такое метод и как его вызвать это жесть. А там столько всего что ещё нужно знать и понимать, что реально без книги никуда.
2
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 13:07  [ТС]
а как указывать картинку, и и другие свойства пикчербокса
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
09.03.2012, 13:20
cat000000, для начала вот это http://msdn.microsoft.com/ru-r... rebox.aspx но лучше прислушайся к совету Casper-SC, почитай книгу.
1
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 16:33  [ТС]
всё спасибо огромное, с тасканием картинок разобрался, теперь надо по нажатию кнопки считать в масив координаты всех расставленных картинок

не подскажите с чего начать ?
0
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
09.03.2012, 16:59
Найти в книге тему "Двумерные массивы" или просто "Массивы" и читать. После прочтения темы сохранять в массив координаты, что-то вроде: Для каждой pictureBox на форме читать координаты в массив(пишу текстом специально)
C#
1
2
3
4
foreach (PictureBox pb in this.Controls)
{
   //Читаем координаты в массив
}
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 17:05  [ТС]
как я понимаю надо в начале при создании заносить имя в масив, а при клике на кнопку в другой масив заносить координаты
0
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
09.03.2012, 17:23
Цитата Сообщение от cat000000 Посмотреть сообщение
как я понимаю надо в начале при создании заносить имя в масив, а при клике на кнопку в другой масив заносить координаты
Зачем? Например как можно сделать с одномерным массивом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
string kor; //Массив для хранения координат
 
...
 
foreach (PictureBox pb in this.Controls)
{
   kor.Length++; //Задаем размер массива   
}
 
...
 
for (int i = 0; i <= kor.Length; i++) 
{
   foreach (PictureBox pb in this.Controls)
   {
      kor[i] = pb.Location.X + "," + pb.Location.Y;  
   }
}
В итоге в массиве будут строки вида: "50,10" | "58,78" | "98,20"
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 17:59  [ТС]
я вроде понял идею...
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  private void button1_Click(object sender, EventArgs e)
        {
 
 
 
 
            string kor;
 
            for (int i = 0; i <= kor.Length; i++)
            {
 
 
                foreach (Control control in Controls)
                {
                    PictureBox pictBox = control as PictureBox;
                    if (pictBox != null)
                    {
                        kor[i] = pictBox.Location.X + "," + pictBox.Location.Y;
                    }
                }
            }
        }
но выходит ошибка, что pictBox не найден в текущем контексте
0
 Аватар для Mr.kto
104 / 105 / 18
Регистрация: 18.08.2012
Сообщений: 308
09.03.2012, 18:35
смотри если нужно 11.rar
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 18:49  [ТС]
Цитата Сообщение от Mr.kto Посмотреть сообщение
смотри если нужно Вложение 132639
спасибо, конечно, но перетаскивание картинки я уже давно сделал, и создание новых по клику тоже сделал, мне теперь надо было помесить в масив все координаты всех картинок
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2012, 19:34
Цитата Сообщение от cat000000 Посмотреть сообщение
мне теперь надо было помесить в масив все координаты всех картинок
А можешь показать, что у тебя вышло в итоге и как вообще всё сделал?

Добавлено через 1 минуту
Если использовал код, который я приводил ранее, там есть уже список с PictureBox'ами. Есть же такой код в методе AddNewPictureBox:
C#
1
_controls.Add(pictBox);
Вот это и есть то, что тебе нужно.

Добавлено через 56 секунд
Проходишься по всем элементам списка и получаешь координаты.

Добавлено через 2 минуты
Вот например:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void DoWork()
        {
            for (int i = 0; i < _controls.Count; i++)
            {
                //хотя там и так все элементы PictureBox, ну мало ли что ты там сделал, переделал
                //Вообще, если 100% в списке нужны именно PictureBox'ы, то смени тип элементов в списке
                if (_controls[i] is PictureBox) 
                {
                    PictureBox pictBox = _controls[i] as PictureBox;
                    //pictBox.Location //Вот они координаты
                }
            }
        }
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 20:02  [ТС]
ок, кидаю, но там надо несколько списками, по одному на каждай pictBox, pictBox2 и так далее,
Вложения
Тип файла: rar WindowsFormsApplication7.rar (362.4 Кб, 10 просмотров)
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.03.2012, 20:20
Что ты там за жесть нагородил???
Зачем одинаковые методы AddNewPictureBox1, AddNewPictureBox2... AddNewPictureBox15... Зачем это? Я поправил, теперь там 1 метод для клика по всем PictureBox'ам и 1 для добавления.

Вот лови исправленный вариант. Ещё раз подтвержадется, что для начала надо бы понять простые вещи (книгу читать надо). Хотя практика тоже очень полезна (но без основ, не особо).

Кстати, константы можешь удалить. А так объясни что ты хочешь сделать. Для чего тебе координаты запоминать?
Вложения
Тип файла: zip Game.zip (111.2 Кб, 19 просмотров)
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 20:41  [ТС]
хорошо, объясню что я хочу получить....

я делаю редактор уровней для andry birds, походу это понятно

Code
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
RedBird_1={
    angle=0,
    animTimer=1,
    blinkSprite="BIRD_RED",
    controllable=true,
    damageSprite="BIRD_RED",
    definition="RedBird",
    density=6,
    friction=0.30000001192093,
    frozen=false,
    jumpTimer=1.2000000476837,
    mass=13.618800163269,
    material="red",
    name="RedBird_1",
    radius=0.85000002384186,
    restitution=0.43000000715256,
    sleeping=false,
    sphere=true,
    sprite="BIRD_RED",
    spritePivotX=27,
    spritePivotY=27,
    startNumber=4,
    strength=60,
    type="circle",
    x=-18.829299926758,
    xVel=0,
    y=-0.94128000736237,
    yVel=0

этот код помещает красную птичку в игре по кординатам x=-18.829299926758, и y=-0.94128000736237,

смысл моей проги в том чтобы раставить объекты , а потом взять их координаты, и поместить в текстовый файлик


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

там я кинул файлик уровня...
Вложения
Тип файла: rar Level1.rar (2.6 Кб, 11 просмотров)
0
 Аватар для DimanRu
721 / 712 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
09.03.2012, 21:22
Ну так делайте нормальный редактор, панель инструментов или вроде того, потом по различным "инструментам" читайте координаты и сохраняте в файл, может я чего-то не понимаю, конечно тогда простите - в игру не играл, уровни нне строил просто по опыту говорю)

P.S. Надо скачать поюзать! Видео смотрел, напоминает пингвинов на мобилке))
0
1 / 1 / 2
Регистрация: 19.01.2012
Сообщений: 82
09.03.2012, 21:29  [ТС]
Цитата Сообщение от DimanRu Посмотреть сообщение
Ну так делайте нормальный редактор, панель инструментов или вроде того, потом по различным "инструментам" читайте координаты и сохраняте в файл, может я чего-то не понимаю, конечно тогда простите - в игру не играл, уровни нне строил просто по опыту говорю)

P.S. Надо скачать поюзать! Видео смотрел, напоминает пингвинов на мобилке))

не потяну я это всё сделать, хуть так бы чтоньть вышло )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2012, 21:29
Помогаю со студенческими работами здесь

Перетаскивание мышью видео в Adobe Premiere
Ребят нужна помощь, как сделать перетаскивание мышью видео файла в Adobe Premiere? Имеется путь до файла в текст боксе, хотелось бы чтобы...

Реализовать перетаскивание мышью элементов из одного списка в другой и обратно
На форме два списка (Listbox). Реализовать перетаскивание мышью элементов из одного списка в другой и обратно.

Перетаскивание формы за pictureBox
Всем привет! В общем вопрос в названии темы... Как осуществить перетаскивание формы за pictureBox? Есть ли решение? В C# новичок... да и...

Рисование на PictureBox - растягивание, перетаскивание фигур
Здравствуйте, такая проблема: пишу что-то вроде графического редактора, в числе прочих нужно реализовать рисование графических примитивов...

Как рисовать мышью на picturebox
Помогите составить код, как рисовать мышью на picturebox.


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru