Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2014, 13:21   #1
dima1257
Пользователь
 
Аватар для dima1257
 
Регистрация: 16.11.2012
Сообщений: 66
По умолчанию Как реализовать интерфейс.

каждая пара label и textBox лежат в своих панелях.
как сделать что то подобное как с закладками в браузере. То есть потянуть за панель и в определенных координатах она поменяется местами с соседней и если тянуть дальше, то процесс повторяется.



вот нашел класс который позволяет перетаскивать контролы по форме.
Код:
        public Form1() 
        {
            InitializeComponent();
            Helper.ControlMover.Init(this.button1); // Использование
        }


// Класс ControlMover.cs
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Helper
{
	class ControlMover
	{
		public enum Direction
		{
			Any,
			Horizontal,
			Vertical
		}

		public static void Init(Control control)
		{
			Init(control, Direction.Any);
		}

		public static void Init(Control control, Direction direction)
		{
			Init(control, control, direction);
		}

		public static void Init(Control control, Control container, Direction direction)
		{
			bool Dragging = false;
			Point DragStart = Point.Empty;
			control.MouseDown += delegate(object sender, MouseEventArgs e)
			{
				Dragging = true;
				DragStart = new Point(e.X, e.Y);
				control.Capture = true;
			};
			control.MouseUp += delegate(object sender, MouseEventArgs e)
			{
				Dragging = false;
				control.Capture = false;
			};
			control.MouseMove += delegate(object sender, MouseEventArgs e)
			{
				if (Dragging)
				{
					if (direction != Direction.Vertical)
						container.Left = Math.Max(0, e.X + container.Left - DragStart.X);
					if (direction != Direction.Horizontal)
						container.Top = Math.Max(0, e.Y + container.Top - DragStart.Y);
				}
			};
		}
	}
}
Изображения
Тип файла: jpg int.JPG (42.7 Кб, 32 просмотров)
Тип файла: jpg tabs.JPG (6.7 Кб, 32 просмотров)
Выдержка из правил форума: Не стоит отправлять в поиск, не хотите отвечать пройдите мимо. Хотите помочь, пишите конкретный ответ.
dima1257 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Basic, Excel. Реализовать интерфейс к базе данных. Drozd-A Помощь студентам 0 23.01.2013 15:26
Как реализовать подобный интерфейс средствами Делфи без скачки доп. модулей? pashka_dos Помощь студентам 6 19.10.2012 20:45
Как реализовать подобный графический интерфейс alexplato Общие вопросы .NET 7 14.09.2011 07:59
Автоматический интерфейс, жесточайшая инкапсуляция. Как реализовать? Начавший Общие вопросы C/C++ 10 31.08.2011 11:33