Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/32: Рейтинг темы: голосов - 32, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 12

событие resize

28.03.2011, 18:29. Показов 5929. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята, нужна помощь) при изменении формы, нужно менять размеры панели с картинкой на ней, чтобы все это было пропорционально

загрузка картинки в панель:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void windowOpenFirstMenu_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "Image files (*.BMP, *.JPG, *.GIF, *.TIF, *.PNG, *.ICO, *.EMF, *.WMF)|*.bmp;*.jpg;*.gif; *.tif; *.png; *.ico; *.emf; *.wmf";
            if (dialog.ShowDialog() == DialogResult.OK)
            {
                Image image = Image.FromFile(dialog.FileName);
                int width = image.Width;
                int height = image.Height;
                panel1.AutoSize = true;
                panel1.Location = new Point(0, 25);
                panel1.Width = width;
                panel1.Height = height;
                panel1.BackgroundImage = new Bitmap(Image.FromFile(dialog.FileName), width, height);
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.03.2011, 18:29
Ответы с готовыми решениями:

ReSize формы
Здравствуйте, возникла следующая проблема (поиском пользовался ничего похожего не нашел, мб плохо искал) Итак, есть форма, 8 компонентов...

Использование Array.Resize()
мне нужно применить Array.Resize(ref array, array.Length + 1); к массиву обьектов класса Fields(массив A) , написала A.Resize(ref A,...

Метод Array.Resize
Как сделать так чтобы он выводил все элементы удовлетворяющие данному условию, используя Array.Resize?? int a = 0; int A...

7
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
28.03.2011, 18:45
А использовать Table layout контрол не подойдет?
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 12
28.03.2011, 18:55  [ТС]
нет...
0
 Аватар для dzjundzja88
289 / 234 / 32
Регистрация: 09.02.2011
Сообщений: 435
28.03.2011, 19:16
Студио нет, напишу алгоритм:
Создай событие формы onresize и в нём бери текущий размер формы и соответственно, в такой же пропорции, изменяй размер пикчербокса и картинки
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 12
28.03.2011, 19:20  [ТС]
ну до этого я догадался, но как именно написать изменение в этой же пропорции?
0
 Аватар для SandWraith
189 / 189 / 38
Регистрация: 11.04.2009
Сообщений: 497
28.03.2011, 21:44
Цитата Сообщение от RaWeN Посмотреть сообщение
нет...
А чем он тебя не устроил?
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
28.03.2011, 21:57
вот так например работать будет...думаю, можно сделать покрасивше и попроще (это в целом просто пример возможного варианта)...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        int[] ish_razm = new int [2];
        private void Form1_ResizeBegin(object sender, EventArgs e)
        {
            ish_razm [0]= this.Width;
            ish_razm [1]= this.Height;
        }
 
        private void Form1_ResizeEnd(object sender, EventArgs e)
        {
            panel1.Width = panel1.Width * this.Width / ish_razm[0];
            panel1.Height = panel1.Height * this.Height / ish_razm[1];
            panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
        }
1
145 / 145 / 26
Регистрация: 09.10.2009
Сообщений: 261
28.03.2011, 22:10
В свойствах панели не забываем ставить BackgroundImageLayout = Stretch. А в остальном будет выглядеть вот так:
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
        public int hPanel;
        public int wPanel;
 
        public Form1()
        {
            InitializeComponent();
 
            hPanel = panel1.Size.Height;
            wPanel = panel1.Size.Width;
        }
 
        private void Form1_Resize(object sender, EventArgs e)
        {
            int sourceWidth = wPanel;
            int sourceHeight = hPanel;
            int clientSizeOffset = 30; // высота кепшена и отступы (взял на глаз)
 
            float nPercentW = 0;
            float nPercentH = 0;
 
            nPercentW = ((float)(ClientSize.Width - clientSizeOffset) / (float)sourceWidth);
            nPercentH = ((float)(ClientSize.Height - clientSizeOffset) / (float)sourceHeight);
 
            int destWidth = (int)(sourceWidth * nPercentW);
            int destHeight = (int)(sourceHeight * nPercentH);
 
            panel1.ClientSize = new System.Drawing.Size(destWidth, destHeight);
 
            hPanel = panel1.Size.Height;
            wPanel = panel1.Size.Width;
        }
П.С. В данном примере картинка загружалась в качестве ресурса.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.03.2011, 22:10
Помогаю со студенческими работами здесь

Быстрый Resize Bitmap
Здравствуйте, камрады! Суть проблемы: нужно в интерактивном режиме ресайзить Bitmap порядка 3*4 тыщи пикселей или даже больше. Грубо...

Принудительно вызвать событие, если произошло другое событие
Сразу оговорюсь, это тема про события, а НЕ про Windows Forms, да бы ни кто не переносил тему. В Windows Forms у тех или иных...

Что не так с Array.Resize?
Чем плохо использование Array.Resize? Почему за его использование могут косо посмотреть и посмеяться? Я знаю, что есть List<> и...

Можно ли использовать функцию .Resize для создания массива?
Добрый вечер, уважаемые форумчяне! Подскажите пожалуйста можно ли использовать ф-цию .Resize для создания массива? Вот таким способом: ...

Resize как получить предыдущие размеры
как на методе resize получить размер объекта до изменения его размеров


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
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. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru