Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
13 / 13 / 0
Регистрация: 19.01.2010
Сообщений: 189
1
.NET 4.x

Перетаскивание панели

25.11.2010, 11:46. Показов 5612. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Люди как сделать что бы панель перетаскивалась с одного места на форме на другое?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2010, 11:46
Ответы с готовыми решениями:

Изменение цвета панели на другой панели
Доброго времени суток, нужна помощь, ситуация следующая: Имеется форма(Допустим форма1), на форме...

Динамично создать 4 панели и к каждой панели привязать динамично таблицу
private void Form1_Load(object sender, EventArgs e) { int Index_I, Border=10; ...

Перетаскивание объектов
Всем привет) Пишу программу которая рисует схемы сети(картинка снизу), хочу сделать так чтоб можно...

Перетаскивание в TreeView
Как реализовать перетаскивание веток тривью между узлами? Где можно посмотреть примеры и почитать...

10
687 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
25.11.2010, 12:54 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

если я правильно понял ты хочешь мышкой перетаскивать панель куда угодно на форме
в таком случае делается вот так

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
bool isDragging = false;
        int currentX, currentY;
panel1.MouseDown+=new MouseEventHandler(panel1_MouseDown);
            panel1.MouseMove+=new MouseEventHandler(panel1_MouseMove);
            panel1.MouseUp+=new MouseEventHandler(panel1_MouseUp);
        private void panel1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {            
            if (e.Button == MouseButtons.Left)
            {
                isDragging = true;
                currentX = e.X;
                currentY = e.Y;
            }
        }
        private void panel1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            if (isDragging)
            {
                panel1.Top = panel1.Top + (e.Y - currentY);
                panel1.Left = panel1.Left + (e.X - currentX);
            }
        }
        private void panel1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
        {
 
            if (e.Button == MouseButtons.Left)
            {
                isDragging = false;
            }
        }
2
13 / 13 / 0
Регистрация: 19.01.2010
Сообщений: 189
25.11.2010, 13:03  [ТС] 3
БОЛЬШОЕ СПАСИБО ТЕБЕ!!! Может ты мне еще подскажешь как можно создать меню на русском и английском языке и, что бы сохранялось последнее открытое меню (если было открыто русское меню то при следующем запуске открывалось русское меню и наоборот).
0
687 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
25.11.2010, 13:11 4
Цитата Сообщение от sergeybr Посмотреть сообщение
БОЛЬШОЕ СПАСИБО ТЕБЕ!!! Может ты мне еще подскажешь как можно создать меню на русском и английском языке и, что бы сохранялось последнее открытое меню (если было открыто русское меню то при следующем запуске открывалось русское меню и наоборот).
вариант первый: можно создать два меню, один на русском, другой на английском(не очень)
вариант второй: создать одно меню и каким то образом сохранять тексты менюшек (скажем в файле)

сохранять параметр(ы) можно даже не файле а в app.config
то есть в solution explorer-е делаешь right click входишь в properties, идешь на складку settings, там увидишь панель, где можно создавать параметры разных типов

сохранение из кода созданных параметров делается таким образом

C#
1
2
Properties.Settings.Default.Параметр = значение;
                        Properties.Settings.Default.Save();
а чтение и так понятно

в принципе сами тексты менюшек можно делать через config, то есть создать параметр string типа и там значения

но думаю есть много других решений....
1
970 / 773 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
25.11.2010, 22:11 5
это что-то вы загнули, вот туториал от малкософта http://msdn.microsoft.com/ru-r... S.71).aspx
1
5 / 5 / 7
Регистрация: 31.03.2013
Сообщений: 228
18.09.2013, 06:30 6
ещё вопросик, как сделать так чтоб при перетаскивании панели она не выходила за грани формы?
0
5 / 5 / 7
Регистрация: 31.03.2013
Сообщений: 228
01.10.2013, 05:55 7
ау люди=)
0
21 / 21 / 7
Регистрация: 22.02.2013
Сообщений: 237
01.10.2013, 11:01 8
Возможно написать условие ограничивающее перемещение панели только в координатах формы?)
0
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 3
10.04.2014, 13:59 9
Спасибо вам большое. Я тоже нашел то, что мне нужно
0
blacl_cloak
11.04.2014, 05:25
  #10

Не по теме:

и что же ты нашел?)

0
0 / 0 / 2
Регистрация: 06.05.2013
Сообщений: 12
08.06.2015, 21:57 11
Искал тоже перетаскивание панели по форме, выше описанный код не получилось вставить, но нашёл другой, вдруг кому понадобится:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool MouseState = false;
        Point PrevMousePos;
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            PrevMousePos = new Point(e.X, e.Y);
            if (e.Button == MouseButtons.Left) { this.MouseState = true; } 
        }
        private void panel1_MouseMove(object sender, MouseEventArgs e)
        {
            if (this.MouseState)
            {
                int dx = e.X -PrevMousePos.X;
                int dy = e.Y - PrevMousePos.Y;
                panel1.Location = new Point(panel1.Location.X + dx, panel1.Location.Y + dy);
            }
        }
        private void panel1_MouseUp(object sender, MouseEventArgs e)
        { if (e.Button == MouseButtons.Left) { this.MouseState = false; } }
0
08.06.2015, 21:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2015, 21:57
Помогаю со студенческими работами здесь

Перетаскивание. Интересно.
Даны три элемента listbox. С помощью событий DragDrop, MouseDown, DragEnter осуществить при условии...

Перетаскивание формы
Как перетащить форму если FormBorderStyle = None?

Перетаскивание контролов
Добрый день. Необходима ваша помощь уважаемые форумчани =) Мне нужно решить следующий вопрос:...

Перетаскивание из listBox1 в listBox2
Здравствуйте. Не понимаю как сделать перетаскивание из listBox1 в listBox2. Помогите пожалуйста. ...


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

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