Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
1

Создание панели при нажатии на кнопку

15.12.2014, 10:56. Просмотров 5106. Ответов 54
Метки нет (Все метки)

Доброго времени суток.
Необходимо разработать программу с двумя кнопками на форме.
При нажатии на первую на форму добавляется одна панель (Panel).
При нажатии на вторую кнопку в каждую панель добавляется поле ввода.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2014, 10:56
Ответы с готовыми решениями:

Как сделать, чтобы при нажатии на кнопку, Label добавлялся в низ панели?
Здравствуйте. Есть проблема, не знаю как решить. Подскажите пожалуйста. Суть...

Создание label при нажатии на кнопку
Нужна помощь. Знаю, что задание "лоховские", но помогите сделать так, чтобы при...

Создание всплывающей подсказки при нажатии на любую кнопку
Необходимо создать всплывающую подсказку, которая будет всплывать при нажатии...

Создание tabControl по нажатии на кнопку
Привет всем! подскажите пжл как в WPF сделать так чтобы при нажатии на одну...

При нажатии мышки в панели на месте нажатия рисуется точка
Учусь рисовать в шарпе с помощью методов GDI+. Попробовал делать всякие фигуры...

54
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
15.12.2014, 19:25 41
Norbert96,
может так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private void panel1_Click(object sender, EventArgs e)
        {
            //Получаем ссылку на кнопку, на которую нажали
            Panel oldbutton = (Panel)sender;
            //Создаем новую кнопку
            Panel newbutton = new Panel();
            newbutton.BackColor = Color.Red;
            newbutton.Size = new Size(10, 10);
            //Меняем текст на новой кнопке
            newbutton.Text = "Кнопка №" + colbutton;
            newbutton.Width = oldbutton.Width;
            newbutton.Height = oldbutton.Height;
            //Размещаем ее ниже (на 10px) кнопки, на которую мы нажали
            newbutton.Location = new Point(oldbutton.Location.X, oldbutton.Location.Y + oldbutton.Height + 10);
            //Добавляем событие нажатия на новую кнопку 
            //(то же что и при нажатии на исходную)
            newbutton.Click += new EventHandler(button1_Click);
            //Добавляем элемент на форму
            this.Controls.Add(newbutton);
            colbutton++;
        }
1
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
15.12.2014, 19:28  [ТС] 42
Цитата Сообщение от ivan r Посмотреть сообщение
может так?
C#
1
Panel oldbutton = (Panel)sender;
Необработанное исключение типа "System.InvalidCastException" в 5.15.exe
Дополнительные сведения: Не удалось привести тип объекта "System.Windows.Forms.Button" к типу "System.Windows.Forms.Panel".

У вас нет такой ошибки?
0
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
15.12.2014, 19:38 43
Norbert96, если так то нет
C#
1
private void panel1_Click(object sender, EventArgs e)
1
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
15.12.2014, 19:44  [ТС] 44
Цитата Сообщение от ivan r Посмотреть сообщение
private void panel1_Click(object sender, EventArgs e)
Панель вместо кнопки?
Тогда в последней строке "colbutton" отсутствует в текущем контексте
0
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
15.12.2014, 19:58 45
Norbert96, это переменная colbutton
int colbutton = 0; вставь куда нибудь, это для нумерации.
1
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
15.12.2014, 20:03  [ТС] 46
Цитата Сообщение от ivan r Посмотреть сообщение
вставь куда нибудь, это для нумерации
Вот что получается:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        private void panel1_Click(object sender, EventArgs e)
        {
        //Получаем ссылку на кнопку, на которую нажали
        Panel oldbutton = (Panel)sender;
        //Создаем новую кнопку
        Panel newbutton = new Panel();
        newbutton.BackColor = Color.Red;
        newbutton.Size = new Size(10, 10);
        //Меняем текст на новой кнопке
        //newbutton.Text = "Кнопка №" + colbutton;
        newbutton.Width = oldbutton.Width;
        newbutton.Height = oldbutton.Height;
        //Размещаем ее ниже (на 10px) кнопки, на которую мы нажали
        newbutton.Location = new Point(oldbutton.Location.X, oldbutton.Location.Y + oldbutton.Height + 10);
        //Добавляем событие нажатия на новую кнопку 
        //(то же что и при нажатии на исходную)
        newbutton.Click += new EventHandler(panel1_Click);
        //Добавляем элемент на форму
        this.Controls.Add(newbutton);
        int colbutton = 0;
        }
Полагаю, что прикреплять картинку будет лишним. Там всего лишь небольшой черный квадрат в центре формы.
Но при клике на него все еще ноль действий, хотя сейчас и нет ошибок в коде.
0
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
15.12.2014, 20:11 47
Norbert96,
Создание панели при нажатии на кнопку

Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
private void panel1_Click(object sender, EventArgs e)
        {
            int colbutton = 0;
            //Получаем ссылку на кнопку, на которую нажали
            Panel oldbutton = (Panel)sender;
            //Создаем новую кнопку
            Panel newbutton = new Panel();
            newbutton.BackColor = Color.Red;
            newbutton.Size = new Size(10, 10);
            //Меняем текст на новой кнопке
            newbutton.Text = "Кнопка №" + colbutton;
            newbutton.Width = oldbutton.Width;
            newbutton.Height = oldbutton.Height;
            //Размещаем ее ниже (на 10px) кнопки, на которую мы нажали
            newbutton.Location = new Point(oldbutton.Location.X, oldbutton.Location.Y + oldbutton.Height + 10);
            //Добавляем событие нажатия на новую кнопку 
            //(то же что и при нажатии на исходную)
            newbutton.Click += new EventHandler(panel1_Click);
            //Добавляем элемент на форму
            this.Controls.Add(newbutton);
            colbutton++;
        }
1
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
15.12.2014, 20:20  [ТС] 48
ivan r, Все еще неактивна.
0
Миниатюры
Создание панели при нажатии на кнопку  
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
15.12.2014, 20:23 49
Norbert96, а нажимайте на дочерние созданные панели, сначал клик по 1 создалось 2 и жать на 2 что бы сделать 3
0
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
15.12.2014, 20:25  [ТС] 50
Цитата Сообщение от ivan r Посмотреть сообщение
а нажимайте на дочерние созданные панели, сначал клик по 1 создалось 2 и жать на 2 что бы сделать 3
Ну да, как по аналогии с кнопками. Я сориентировался по коду. Но первая панель не создает вторую.
0
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
16.12.2014, 18:02 51
Цитата Сообщение от Norbert96 Посмотреть сообщение
Но первая панель не создает вторую.
этого я не знаю... как создавать по одной.
0
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
16.12.2014, 18:03  [ТС] 52
Цитата Сообщение от ivan r Посмотреть сообщение
этого я не знаю... как создавать по одной.
Жаль, что я тоже.
В любом случае, вы сделали более, чем достаточно. Благодарю за помощь.
0
ivan r
31 / 31 / 12
Регистрация: 18.10.2014
Сообщений: 327
16.12.2014, 18:05 53
Norbert96, создай тему типа добавления элемента по одному.
0
Norbert96
2 / 2 / 0
Регистрация: 20.12.2012
Сообщений: 102
16.12.2014, 18:07  [ТС] 54
Цитата Сообщение от ivan r Посмотреть сообщение
создай тему типа добавления элемента по одному.
Угу.
Думаю, как только освобожусь, создам такую тему.
0
RustikSRR
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 3
14.01.2016, 12:46 55
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
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Лаба_паши_5._5
{
    public partial class Form1 : Form
    {
        Panel b = new Panel();
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            b.Parent =this;
            b.Location = new Point(20, 10);
            b.Size = new Size(350, 200);
            b.BackColor = Color.Green;
            //   pn.Location = 
            this.Controls.Add(b);
 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            TextBox textBox1 = new TextBox();
            textBox1.Location= new Point (50,80);
            textBox1.Size = new Size(230, 150);
            b.Controls.Add(textBox1);
        }
    }
    }
0
14.01.2016, 12:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2016, 12:46

Ошибка при нажатии на кнопку!
У меня прога калькулятор матриц. Если не внесены данные и нажать на кнопку...

Событие при нажатии на кнопку
Здравствуйте! Извините за немного нубский вопрос. Возможно ли для элемента...

Картинка при нажатии на кнопку
Как сделать чтобы при нажатии на кнопку появилась картинка, а при повторном...


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

Или воспользуйтесь поиском по форуму:
55
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru