С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/35: Рейтинг темы: голосов - 35, средняя оценка - 4.94
 Аватар для maks_IQ
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173

Прилипание формы к краям экрана

12.03.2011, 15:14. Показов 6582. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Заинтересовала меня следующая вещь: можно ли сделать так, чтобы форма "прилипала" к краям дисплея?
Если да, то как?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2011, 15:14
Ответы с готовыми решениями:

Прилипание формы к краям экрана как QIP например
Я довольно таки просто сделал вариант прилипания формы к краям экрана. Но вот незадача прилипание действует только тогда, когда...

Прилипание окна к краям дисплея
Всем привет, скажите как сделать чтобы форма прилипала к к краям дисплея при перетаскивание?

Прилипание блока к низу экрана, когда его не видно
Всем привет. Подскажите как решить такую задачу: Есть блок <div class="stocke2" id="readmore_block"></div> ...

4
Заблокирован
12.03.2011, 19:15
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
33
34
35
 using System.Runtime.InteropServices;
    public partial class Form1 : Form
    {
        private int width = Screen.PrimaryScreen.Bounds.Width;
 
        const int WM_NCLBUTTONDOWN = 0x00A1;
        const int WM_NCHITTEST = 0x0084;
        const int HTCAPTION = 2;
        [DllImport("User32.dll")]
        static extern int SendMessage(IntPtr hWnd,
        int Msg, IntPtr wParam, IntPtr lParam);
 
        public Form1()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.Form1_Load);
        }
 
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_NCLBUTTONDOWN)
            {
                int result = SendMessage(m.HWnd, WM_NCHITTEST, IntPtr.Zero, m.LParam);
                if (result == HTCAPTION)
                    return;
            }
            base.WndProc(ref m);
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            //привязка формы к определенному месту экрана
            this.Location = new System.Drawing.Point(width - this.Size.Width, 0);//вверх вправо
        }
    }
0
 Аватар для maks_IQ
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173
13.03.2011, 11:31  [ТС]
SSV, тут форма появляется в правом верхнем углу экрана. а надо сделать так, чтобы когда подтаскиваешь форму к границе экрана она прилипает. ну типа как в проигрывателях, например AIMP или KMPlayer
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
13.03.2011, 12:40
Лучший ответ Сообщение было отмечено как решение

Решение

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
33
34
35
36
37
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
 
namespace StickyForm
{
    public partial class Form1 : Form
    {
        const int DISTANCE = 10;
 
        public Form1 () {
            InitializeComponent();
        }
 
        protected override void WndProc ( ref Message m ) {
            if (m.Msg == 0x0046 /* WM_WINDOWPOSCHANGING */) {
                Rectangle workArea = SystemInformation.WorkingArea;
                Rectangle rect = (Rectangle)Marshal.PtrToStructure((IntPtr)(IntPtr.Size * 2 + m.LParam.ToInt64()), typeof(Rectangle));
 
                if (rect.X <= workArea.Left + DISTANCE)
                    Marshal.WriteInt32(m.LParam, IntPtr.Size * 2, workArea.Left);
 
                if (rect.X + rect.Width >= workArea.Width - DISTANCE)
                    Marshal.WriteInt32(m.LParam, IntPtr.Size * 2, workArea.Right - rect.Width);
 
                if (rect.Y <= workArea.Top + DISTANCE)
                    Marshal.WriteInt32(m.LParam, IntPtr.Size * 2 + 4, workArea.Top);
 
                if (rect.Y + rect.Height >= workArea.Height - DISTANCE)
                    Marshal.WriteInt32(m.LParam, IntPtr.Size * 2 + 4, workArea.Bottom - rect.Height);
            }
 
            base.WndProc(ref m);
        }
    }
}
11
 Аватар для maks_IQ
21 / 21 / 1
Регистрация: 05.01.2011
Сообщений: 173
13.03.2011, 12:55  [ТС]
SSTREGG, то что надо, спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.03.2011, 12:55
Помогаю со студенческими работами здесь

Создание окружности и движение по краям экрана
Уважаемые форумчане! Помогите с кодом. Нужно сделать окружность пикс на 20 закрашенную белым цветом и чтобы она двигалась по краю экрана...

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

Как исправить растяжение объектов по краям экрана
В общем пришёл я сдавать этот проект а препод поругал за то что планеты растягиваются, причём чем ближе к краю экрану тем больше...

Прилипание (выравнивание) одного PictureBox к другому по перемещению внутри формы
Ребят, в общем суть вопроса в самой теме. Необходимо реализовать прилипание одной картинки (которую мы тащим) по координатам другой...

Как сделать полупрозрачную тень по краям формы
Как реализовать ?


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru