Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84

Изменение количества и размера панелей по щелчку

11.08.2010, 17:06. Показов 5936. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Люди сильно не ругайтесь я только начала изучать c#, есть вот такая идея, есть определенное количество панелей, в которые я потом вставлю фотографии мне надо, чтобы при нажатии на кнопки менялось количество и размер. Чтобы проще меня было понять, выкладываю скрины. Помогите, пожалуйста!!!
Миниатюры
Изменение количества и размера панелей по щелчку   Изменение количества и размера панелей по щелчку   Изменение количества и размера панелей по щелчку  

0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.08.2010, 17:06
Ответы с готовыми решениями:

Динамическое изменение количества панелей
Доброго утра всем спецам по WPF. Прошу подкинуть мысли по решению следующей проблемы: Имеется MainWindow, в котором содержится...

Изменение размера картинки по щелчку
Как при одном щелчке сделать так, чтоб размер картинки увеличивался, а при еще одном нажатии уменьшался? c#

Изменение положения и размера N-го количества компонентов
Как всегда не уверен в названии темы Доброго вечера. Интересует следующий вопрос относительно компонента TPanel. Имеется FormX, на...

53
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 17:35
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от pink-cake Посмотреть сообщение
чтобы рамки уже были на форме и при клике по кнопке рядом я могла спрятать или вновь отобразить несколько рамок
ну если вам по кнопке надо, тогда чего я мучаюсь , другой код пишу???
опишите конкретно что надо сделать, сколько панелек, с чем, сколько кнопок, какая что делает...и т.д.
0
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 17:44  [ТС]
Вот разрисовала что и как! Видно?
Миниатюры
Изменение количества и размера панелей по щелчку  
0
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 17:46
а панели дизайнером в ручную хотите поставить, или программно как я писал?
0
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 17:51  [ТС]
Хочу как на рисунке сразу!
0
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 17:56
а нет, поработать вам придется

поставьте дизайнером 12 панелек как у вас на рисунке, и кнопки тоже. панельки назовите поочередно (panel1, panel2....,panel12) просто цифры в названиях поставить дизайнером не удастся поэтому (panel1, panel2....,panel12)

и еще кнопки должны иметь обратный эффект тоже? скажем раз нажал на кнопку "3 панели" остальные панели исчезли, а потом повторно нажал и все на свой места???
0
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 18:02  [ТС]
У меня уже форма готова скрин от туда. Да при нажатии еще раз возвращать обратно или наверно лучше одну кнопку "home" которая возвращает на default
0
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 18:13
буду писать код для каждой кнопки поочередно! написанный мною код должен быть скопирован в обработчик события Click кнопки (т.е. двойным щелчком на кнопку в дизайнере открывается само это место)

Добавлено через 3 минуты
кнопка "3 панели" остаются 3 панели, остальные исчезают

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(panel4.visible)
{
case true:
for(int i=4;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=false;
}
break;
case false:
for(int i=4;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
}
break;
}
Добавлено через 1 минуту
кнопка "4 панели" остаются 4 панели, остальные исчезают

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(panel5.visible)
{
case true:
for(int i=5;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=false;
}
break;
case false:
for(int i=5;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
}
break;
}
Добавлено через 2 минуты
кнопка "7 панели" остаются 7 панели, остальные исчезают (не плохо бы исправить на "7 панелей")
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(panel8.visible)
{
case true:
for(int i=8;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=false;
}
break;
case false:
for(int i=8;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
}
break;
}
Добавлено через 1 минуту
кнопка "10 панели" остаются 10 панелей, остальные исчезают

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
switch(panel11.visible)
{
case true:
for(int i=11;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=false;
}
break;
case false:
for(int i=11;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
}
break;
}
0
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 18:17  [ТС]
Работает!!!!!!
0
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 18:24
кнопка "1+8" остаются 8 панелей, и первая увеличивается в 4 раза

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
switch(panel9.visible)
{
case true:
for(int i=9;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=false;
}
panel1.Size=new Size(4*panel1.Width,4*panel1.Height);
break;
case false:
for(int i=9;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
}
panel1.Size=new Size(panel1.Width/4,panel1.Height/4);
break;
}
Добавлено через 2 минуты
кнопка "2+4" остаются 4 панели, первые две увеличиваются в 4 раза

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
switch(panel5.visible)
{
case true:
for(int i=5;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=false;
}
panel1.Size=new Size(4*panel1.Width,4*panel1.Height);
panel2.Size=new Size(4*panel2.Width,4*panel2.Height);
break;
case false:
for(int i=5;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
}
panel1.Size=new Size(panel1.Width/4,panel1.Height/4);
panel2.Size=new Size(panel2.Width/4,panel2.Height/4);
break;
}
Добавлено через 3 минуты
кнопка "home" все в исходную....

пусть начальный размер панелек (x,y) не перепутайте опять чего нибудь, вместо x,y вы в коде должны вставить размеры панелек у вас на форме, посмотрите их в окне properties в строке Size

C#
1
2
3
4
5
for(int i=1;i<=12;i++)
{
this.Controls["panel"+i.ToString()].Visible=true;
this.Controls["panel"+i.ToString()].Size=new Size(x,y);
}
Добавлено через 1 минуту
ГОСПОЖА ДОВОЛЬНА???
0
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 18:28  [ТС]
Да ! Вот только у меня не коректно работает с увеличением
Миниатюры
Изменение количества и размера панелей по щелчку  
0
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 18:30
наверное увеличенная панель лезет на другие, для перемещения других в сторону нужно опять код писать....
0
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 18:34  [ТС]
И вот!
Миниатюры
Изменение количества и размера панелей по щелчку  
0
 Аватар для Бельфегор
688 / 601 / 139
Регистрация: 08.05.2009
Сообщений: 1,098
12.08.2010, 18:38
да pink-cake не все так просто в этом мире подумайте немножко, почитайте, понапишите, и все у вас получится!!!
1
 Аватар для pink-cake
0 / 0 / 0
Регистрация: 11.08.2010
Сообщений: 84
12.08.2010, 20:48  [ТС]
Все я победила!!! Сделала так:
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
38
39
40
41
42
43
44
45
       private void button6_Click(object sender, EventArgs e)
        {         
            int w=300;
            if (panel1.Width < w)
                         {
                 switch (panel9.Visible)
                {        
                     
                    case true:
                        for (int i = 9; i <= 12; i++)
                        {
                            this.Controls["panel" + i.ToString()].Visible = true;
                        }
                        panel1.Size = new Size(2 * panel1.Width, 2 * panel1.Height);
                        panel2.Visible = false;
                        panel5.Visible = false;
                        panel6.Visible = false;
                        break;
                         
                            }
                     }
                 }
 
        private void button7_Click(object sender, EventArgs e)
        {
             int w=300;
             if (panel3.Width < w)
             {
                 switch (panel12.Visible)
                 {
                     case true:
                         for (int i = 13; i <= 12; i++)
                         {
                             this.Controls["panel" + i.ToString()].Visible = false;
                         }
                         
                         panel3.Size = new Size(2 * panel3.Width, 2 * panel3.Height);
                         panel4.Visible = false;
                         panel7.Visible = false;
                         panel8.Visible = false;
                         break;
                         }                 
             }
           
        }
И удалила все case false, чтоб кнопки не возвращали исходное состояние!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.08.2010, 20:48

Создание собственного VCL компонента. Динамическое изменение количества колонок в зависимости от размера объекта
Доброго времени суток всем. Решил при создании своего компонента на основе TStringGrid инкапсулировать в него ряд свойств. Хочется...

Вывод n-ого количества панелей на форму
Существует форма, на которой в столбик должны создаваться панели с одинаковым набором элементов (см.скриншот). У меня есть папка, в...

Увеличить картинку до исходного размера по щелчку на PictureBox
Подскажите, как сделать: щелчек по pictureBox - увеличивает картинку до исходных размеров?

jList и изменение панелей при клике
Есть 10 панелей, и jList слева. Собственно при клике на пункт jList нужная панель должна стать видимой, а другие-нет. Не писать же по...

Изменение значения ячейки по щелчку
Добрый день. Подскажите код как увеличивать значение ячейки на 1 в таблице по 2му щелчку или по нажатию пробела привыделеной ячейке? ...


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru