Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 21.11.2017
Сообщений: 26

Увеличение , уменьшение размера формы

28.09.2018, 12:05. Показов 4194. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код должен работать таким образом: При нажатии ПКМ+ЛКМ форма увеличивается, SHIFT+ПКМ+ЛКМ уменьшается.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private void Form1_MouseDown(object sender, MouseEventArgs e) // Увеличение , уменьшение размера формы
        {
            bool Shift = false;
 
            if ((e.Button == MouseButtons.Right) && (!Shift) && (e.Button != MouseButtons.Left))
            {
                this.Size = new Size(this.Size.Width + 5, this.Size.Height + 5);
                this.Location = new Point(this.Location.X - 2, this.Location.Y - 2);
                Shift = false;
            }
            else if ((e.Button == MouseButtons.Right) && (Shift) && (e.Button != MouseButtons.Left))
            {
                this.Size = new Size(this.Size.Width - 5, this.Size.Height - 5);
                this.Location = new Point(this.Location.X + 2, this.Location.Y + 2);
                Shift = false;
            }
        }
А он только увеличивает форму при нажатии ПКМ
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2018, 12:05
Ответы с готовыми решениями:

Увеличение и уменьшение размера кнопки
При нажатии на кнопку она должна увеличиваться, а когда она достигает определенного размера, она должна вернуться в изначальное состояние.

Изменение размера картинки (увеличение, уменьшение) - остаются белые полосы по краям
Доброго времени суток! Есть проект, необходимо открыть картинку, сделать ресайз и сохранить под другими именем. Всё это сделал, но...

Увеличение и уменьшение картинки
Помогите реализовать на C#: При первом щелчке картинка увеличивалась, а при повторном - уменьшалась? И при этом всегда оставалась на...

3
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
28.09.2018, 13:35
пардон, а у вас всегда
Цитата Сообщение от Bunngle Посмотреть сообщение
Shift = false;
чего вы ждете?
Тут вообще лучше все сделать через флаги, т.е. у вас должно быть три флага: Нажата правая, нажата левая, нажат Shift
Флаги расставляются в евентах, а вот метод обработки Лучше сделать отдельно, и прикрепить его к евенту мыши.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16141 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,119
Записей в блоге: 2
28.09.2018, 13:38
Цитата Сообщение от Bunngle Посмотреть сообщение
А он только увеличивает форму при нажатии ПКМ
Код правильно работает. Вы же устанавливаете bool Shift = false;. Поэтому вторая ветка else if ... никогда не будет работать.
Наверное, у Вас это была отладочная строка и её надо заменить на считывание состояния клавиши Shift.
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18304 / 14228 / 5368
Регистрация: 17.03.2014
Сообщений: 28,900
Записей в блоге: 1
28.09.2018, 13:43
Лучший ответ Сообщение было отмечено Bunngle как решение

Решение

Bunngle, неудивительно. Т.к. Shift всегда равна false, то второе условие никогда не будет истинным. Попробуй вынести ее на уровень формы и устанавливать ее в обработчике событий KeyDown, KeyUp формы - это может быть один метод.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bool Shift;
private void OnKeyUpOrDown(object sender, KeyEventArgs e)
{
    Shift = e.Shift;
}
 
private void Form1_MouseDown(object sender, MouseEventArgs e) // Увеличение , уменьшение размера формы
{
    if (e.Button == MouseButtons.Right && !Shift)
    {
        this.Size = new Size(this.Size.Width + 5, this.Size.Height + 5);
        this.Location = new Point(this.Location.X - 2, this.Location.Y - 2);
    }
    else if (e.Button == MouseButtons.Right && Shift)
    {
        this.Size = new Size(this.Size.Width - 5, this.Size.Height - 5);
        this.Location = new Point(this.Location.X + 2, this.Location.Y + 2);
    }
}
Метод OnKeyUpOrDown нужно назначить обработчиком событий KeyDown, KeyUp формы и установить KeyPreview = true.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.09.2018, 13:43
Помогаю со студенческими работами здесь

Увеличение и уменьшение Forms
при нажатии правой кнопки мыши увеличить размер form на 5, а при нажатии правой кнопки мыши и кнопки Alt уменьшить на 5. Увеличении...

Уменьшение/увеличение количества колонок в DataGridView
Доброе время суток. Хочу сделать так, что бы при вводе числа от 1- 10 через textBox, менялось количество колонок в DataGridView, никогда...

Перемещение (увеличение / уменьшение) картинки по панели
Я думаю из заголовка все понятно, собственно как это реализовать?

Как сделать увеличение/уменьшение суммы платежа и ее отображение?
Есть приложение на c sharp. (красная линия) Никак не могу понять как сделать так, чтобы при нажатии на "+" сумма $...

Как сдлелать увеличение и уменьшение громкость спомощью trackBar
Здраствуйте, подскажите пожалуйста как сдлелать увеличение и уменьшение громкость спомощью trackBar. Запускаю я песню и private void...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru